Mega Code Archive

 
Categories / Delphi / Hardware
 

Ekran cözünürlügün tespiti

Tasarim ortamin gayet düzgün görünen bir formun baska bir bilgisayarda bozuk görünmesi oldukca can sikicidir. Bu olayin sebebi fakli ekran cözünürlükleri ve yazi tipi ayaridir. Bunu önlemek icin uygulama icerisinde bazi kontroller yapmak gerekir. Asagidaki kod örneginde form ve üzerindeki kontrollerin sistemdeki ayarlara göre yeniden ölceklenmesi gösterilmektedir. implementation const {formlarimizin 800x600 ölcülerinde olmasini istiyorsak.} ScreenWidth: LongInt = 800; ScreenHeight: LongInt = 600; {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin scaled := true; if (screen.width <> ScreenWidth) then begin height:=longint(height)*longint(screen.height)DIV ScreenHeight; width := longint(width) * longint(screen.width) DIV ScreenWidth; scaleBy(screen.width, ScreenWidth); end; end; Bu islemden sonra kontrollerdeki yazi tiplerinin de ölceklenmesi gerekecektir. Bu islem bir döngü icerisinde kolaylikla yapilir. Fakat bu esnada ilgili bilesenin FONT özelligi bulundugundan emin olunmalidir. Bu kontrol icin RTTI (Run Time Type Information) kullanilabilir. USES typinfo; var i: integer; begin for i := componentCount - 1 downto 0 do with components[i] do begin if GetPropInfo(ClassInfo, 'font') <> nil then font.size := (NewFormWidth DIV OldFormWidth) * font.size; end; end;