Ĺ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
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 :)