Witam!
Mam maly problem z niniejszym kodem. Jak widac zmienia on rozdzielczosc ekranu (robi to na poczatku) i przelancza po zakonczeniu programu z powrotem na taka jaka byla. No i w Win 9x jest wszystko ok, ale w XP nie chce (tzn. przelaczy czasami na poczatku, ale z powrotem juz nie)
var
mode :TDeviceMode;
begin
ScreenX:=Screen.Width; // ScreenX i ScreenY - sa zmiennymi
ScreenY:=Screen.Height; // globalnymi
mode.dmBitsPerPel:=24;
mode.dmPelsWidth:=800;
mode.dmPelsHeight:=600;
mode.dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT;
ChangeDisplaySettings(Mode,CDS_UPDATEREGISTRY);
var
mode : TDeviceMode;
begin
if Application.Messagebox('Czy jesteś pewien, że chcesz wyjść z programu?','Wyjście z programu?', mb_OkCancel+MB_ICONQUESTION) = IDOK then
begin
mode.dmBitsPerPel:=24;
mode.dmPelsWidth:=ScreenX;
mode.dmPelsHeight:=ScreenY;
mode.dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT;
ChangeDisplaySettings(Mode,CDS_UPDATEREGISTRY);
CanClose := TRUE
end
else
CanClose := FALSE;
end;
Czy ktos moglby mi dac wskazowke gdzie jest zle, lub podpowiedziec jakis inny kod zmieniajacy rozdzielczosc skuteczniejszy od tego.
Bardzo prosze o pomoc, z gory dzieki
Pozdrowionka [cya]