[ Ervin @ 20.01.2002. 14:47 ] @
Napravio sam program sa bazom podataka, ali ne znam kako da resim rezoluciju.
Zeleo bi da program sam prepoznaje rezoluciju i da se automatski podesi. Kako ovo da resim?
[ overflow @ 23.01.2002. 10:17 ] @
Citat:
Ervin:
Napravio sam program sa bazom podataka, ali ne znam kako da resim rezoluciju.
Zeleo bi da program sam prepoznaje rezoluciju i da se automatski podesi. Kako ovo da resim?


Za pocetak ce ti trebati ova funkcija koja menja rezoluciju u zeljenu ...

Code:
function TfrmMain.SetScreenResolution(Width, Height: integer): Longint;
var
  DeviceMode: TDeviceMode;
begin
    with DeviceMode do begin
      dmSize := SizeOf(TDeviceMode);
      dmPelsWidth := Width;
      dmPelsHeight := Height;
      dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
    end;
    Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY);
end;


Zatim u form-in OnCreate stavis :

Code:
OldWidth := GetSystemMetrics(SM_CXSCREEN);
OldHeight := GetSystemMetrics(SM_CYSCREEN);
// snimamo trenutnu rezoluciju u neke promenljive (integer)
SetScreenResolution(800, 600); 
//predpostavicu da zelis da postavis rezoluciju od 800x600


I po izlasku iz programa znaci u form-in OnClose stavis:

Code:
SetScreenResolution(OldWidth, OldHeight);


Sve vreme sam pricao o glavnoj (main) formi tvoje aplikacije.
[ DarkOne @ 06.03.2002. 08:55 ] @
mislim da si zeleo obrnuto od predloga odozgo - koristi Screen.Width i Screen.Height da saznas rezoluciju i na osnovu toga podesi dimenzije forme.
neka ti grid bude postavljen na alClient
[ Pajke @ 29.04.2003. 00:30 ] @
Evo da se nadovezem na ovu temu ,probao sam ovu funkciu ali imam jedan problem
naprimer:
postavim par dugmica i svakom dodelim da poziva odredjenu rezoluciju i to radi Ok i vraca pocetnu bez problema ALI ! SVAKA rezolucia koju pozovem na ovaj nacin biva prebacena na frekfenciu osvezavanja 60Hz (kod mene je podeseno na 85Hz).
Ima li nacina da se prepozna frekfencija koja je pre podesena jer ovako je nezgodno monitor na 60 Hz treperi
[ broker @ 29.04.2003. 10:15 ] @
Mislim da je menjanje rezolucije poptuno pogresan pristup. Aplikacija to ne bi smela tek tako da radi... Treba je napraviti da ne zavisi od rezolucije. U Delphiju se lako moze podesiti minimalna sirina i visina prozora tako da se obebedi preglednost u svakom slucaju ali ako korisnik zeli da razvuce aplikaciju na vecu povrsinu ili na ceo ekran, aplikacije tome treba da se prilagodi. Delphi ima dosta mocne mehanizme koji te stvari u potpunosti automatizuju (pogledaj properti Anchors i minWidth, MaxWidth, MinHeight i MaxHeight kod svake komponente koja se zasniva na prozoru).
[ Pajke @ 29.04.2003. 23:13 ] @
Sve je to tacno i lepo sto je broker napisao ali meni bas treba promena rezolucije ,
ne zbog velicine prozora mog programa ves sasvim druge stvari ,akoje moguce a da ne dira frekfenciu ekrana...
[ Zekica @ 01.05.2003. 17:56 ] @
za razoluciju pogledajte funkcije:
EnumDisplaySettings i ChangeDisplaySettings

i dokumentaciju na MSDN-u.

Da jedna stvar: da bi procitali trenutna podesavanja, koristite:
ENUM_CURRENT_SETTINGS = $FFFFFFFF;

Nadam se da sam pomogao.