ďťż

Ładny brzuch

czy jest ktoś kto wie jak sprawdzić rozdzielczość bo chodzimi ot to że jak jest inna jak 1024*768 to aby na nią zmieniło

pilne jak nie wiem co :o



Screen.Width;
Screen.Height;
// Edit:
Zerknij jeszcze tu:
http://www.delphiqa....dows/qa073.html
Użytkownik LewB ar edytował ten post 10 marzec 2005, 17:18

Screen.Width;
Screen.Height;
// Edit:
Zerknij jeszcze tu:
http://www.delphiqa....dows/qa073.html

jeszcze jeden problem
var Mode:TDeviceMode; S:String; begin if (Screen.Width <> 1024) or (screen.Height <> 768) then begin if (messagebox(handle, 'czy zmini rozdzielczosc?','potwierdzenie zmiany rozdzielczosci' ,MB_YESNO or MB_ICONQUESTION)=IDYES) then begin with Mode do begin dmSize:=SizeOf(Mode); dmBitsPerPel:=32; dmPelsWidth:=1024; dmPelsHeight:=768; dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT; end; case ChangeDisplaySettings(Mode,0) of DISP_CHANGE_SUCCESSFUL:S:='Operacja przebiegła pomyślnie'; DISP_CHANGE_RESTART:S:='Aby zmiany odniosły skutek należy zrestartować systi'; DISP_CHANGE_BADFLAGS:S:='Błędne pole dmFields'; DISP_CHANGE_FAILED:S:='Błąd podczas ustawiania trybu'; DISP_CHANGE_BADMODE:S:='Ten tryb nie jest obsługiwany'; DISP_CHANGE_NOTUPDATED:S:='Rejestr nie został zaktualizowany'; else S:='Nieznany kod wyniku'; end; ShowMessage(S); end; end else mainmenu.Close;
jak zrobić aby po kliknięciu w nie zamknęło program bo u mnie uruchamia bez zmiany rozdzielczości, a jak wcisnę tak to działa jak nalerzy ale ja chcę aby zamknęło program gdy klikną w NIE <_<

:pomocy:



może być
if MessageBox(blabla) = idYes then   cos else Close;
lub (jesli byś korzystasz np: z MB_YesNoCancel)
var   i: integer; begin   i := MessageBox(...);   if i = idYes then      ...   if i = idNo then      ...   if i = idCancel then      ... end;
//------Edit-----
|
V
Sprytniejsze rozwiązanie
Użytkownik LewB ar edytował ten post 11 marzec 2005, 18:28
Hehe
case MessageBox(...) of id_yes: id_no: id_cancel: end;

zrobiłem podobnie jak cyrkiel mówiłeś ale jak kliknę w nie to showmessage ładnie się zgłasza ale już mainmenu.Close; omija :(
a zresztą sami sprawcie :(

dlaczego tak się dzieję ?
procedure TMainMenu.FormCreate(Sender: TObject); var Mode:TDeviceMode; S:String; i:integer; begin if (Screen.Width <> 1024) or (screen.Height <> 768) then begin case MessageBox(handle,'program jest dostowsowana','potwierdzenie zmiany rozdzielczosci' ,MB_YESNO or MB_ICONQUESTION) of id_yes: begin with Mode do begin dmSize:=SizeOf(Mode); dmBitsPerPel:=32; dmPelsWidth:=1024; dmPelsHeight:=768; dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT; end; case ChangeDisplaySettings(Mode,0) of DISP_CHANGE_SUCCESSFUL:S:='Operacja przebiegła pomyślnie'; DISP_CHANGE_RESTART:S:='Aby zmiany odniosły skutek należy zrestartować systi'; DISP_CHANGE_BADFLAGS:S:='Błędne pole dmFields'; DISP_CHANGE_FAILED:S:='Błąd podczas ustawiania trybu'; DISP_CHANGE_BADMODE:S:='Ten tryb nie jest obsługiwany'; DISP_CHANGE_NOTUPDATED:S:='Rejestr nie został zaktualizowany'; else S:='Nieznany kod wyniku'; end; ShowMessage(S); end; id_no: begin mainmenu.Close; showmessage('zamykanie programu'); end; end; end; end;

Nie zamyka, bo nawet nie otworzyło ;) Zamiast mainmenu.Close użyj ExitProcess(0);


Nie zamyka, bo nawet nie otworzyło  ;) Zamiast mainmenu.Close użyj ExitProcess(0);
chodzi jak przecinak :D
dzięki wszystkim za pomoc :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •