kanader6
Messages postés4Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention 1 janvier 2005
-
14 oct. 2004 à 15:18
redamob
Messages postés1Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention13 janvier 2009
-
13 janv. 2009 à 09:37
hello,
toutes les sources que j'ai trouvé sur le net ne fonctionne pas pleinnement.
ce que je voudrai c'est changer la resolution de l'écran (par exemple 800x600 mais sans toucher au nombre de couleur/frequence...) puis restaurer la configue originale, mais :
-compatible windows98 > XP
-sans foutre le bordel dans les icones du bureau
-sans changer la frequence de rafraichissement, couleurs ect...
toutes les sources que j'ai ont un pb, généralement c'est la frequence qui est à 60 htz apres avoir quitter le programme, icone en bordel....
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 14 oct. 2004 à 15:37
Hello,
Voici le moreceau de code que j'utilise dans mon soft pour demarrer en 1024*768 minimum. Je n'ai jamais eu de souci avec.
Bonne prog,
JMP.
en variable global :
ActiveDisplayMode : TDevMode; {Résolution}
Au demarrage de mon soft je fais :
If not(DisplayMode) then
ShowMessage('ASYNC 2000 est optimisé pour fonctionner en 1024 x 768.' +
Chr(10) + 'Votre ordinateur ne supporte pas cette résolution.');
A la fermeture de mon soft je fais :
ChangeDisplaySettings(ActiveDisplayMode,0);
la fonction :
{------------------------------------------------------------------------------}
{ Modifie la résolution si elle n'est pas 1024 x 768 }
{------------------------------------------------------------------------------}
function DisplayMode : Boolean;
If (ScreenHeight < 768) and (ScreenWidth < 1024) then
begin
Change := 0;
Compteur := 0;
Repeat
EncoreDesModes := EnumDisplaySettings(nil,Compteur,Dm);
If (ScreenHeight Dm.DmPelsHeight) and (ScreenWidth Dm.DmPelsWidth) and (ScreenFrequency dm.dmDisplayFrequency) and (ScreenProf dm.dmBitsPerPel) then
begin
ActiveDisplayMode := Dm;
end;
If (Dm.DmPelsHeight 768) and (Dm.DmPelsWidth 1024) then
begin
WorkDisplayMode := Dm;
Change := 1;
end
else
begin
Result := False;
end;
Inc(Compteur);
until EncoreDesModes = False;
If Change = 1 then
begin
ShowMessage('ASYNC 2000 est optimisé pour fonctionner sous une résolution de 1024 x 768.' + Chr(13) +
'Votre résolution actuelle n''est pas adaptée. Le programme va basculer en 1024 x 768.' + Chr(13) +
'Votre résolution sera rétablie lors de la fermeture de ASYNC 2000.');
ChangeDisplaySettings(WorkDisplayMode,0);
Result := True;
end
else
begin
Result := False;
end;
end
else
begin
Result := True;
end;
end;