Problem ze zmiana rozdzielczosci ekranu

0

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]

0

Spróbuj tym u mnie działa:
var
Mode: TDeviceMode;
begin
with Mode do
begin
dmSize:=SizeOf(Mode);
dmBitsPerPel:=16;
dmPelsWidth:=640;
dmPelsHeight:=480;
dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT;
ChangeDisplaySettings(Mode,0)
end;
end;

0

Nie mam pojęcia...
A może ty mi pomożesz kiedy piszę print.begindoc; compilator wywala mi błąd nieznanej zmiennej print. Jak do cholery mam wydrukować canvasa?
Męcze się z tym już cały dzień. Jeżeli możesz to pomóż.
Dzięki. [cya]

0

Kto ma pomóc:
TommyM Adi!!.

0

A dodałeś komponent drukowania!!.Bo jeśli nie to wywala bład!!.I musisz wpisac jeszcze cos co go uruchamia!!.

1 użytkowników online, w tym zalogowanych: 0, gości: 1