Kamis, 07 April 2011

Mengatur Resolusi Aplikasi

Terinspirasi dari sebuah pertanyan dari milis delphindo, tentang bagaimana mengatur resolusi form / aplikasi mengikuti resolusi pada layar.
Untuk pengaturan komponen pada aplikasi memang ada beberapa cara agar terlihat lebih rapih,
(maaf nih yah bukannya sok jago ato menggurui, hanya ingin sharing aja)
> Pertama bisa kita atur langsung dari property alignment komponentnya
apabila sebuah komponent (biasanya sih saya pake Tpanel), bernilai alLeft maka komponen tersebut akan
merapat ke bagian paling kiri, begitu juga yang lainnya.

> Kedua bisa juga dari property anchor
Nah property anchor ini akan memudahkan pengaturan interface program karena komponen tersebut tidak
harus merapat ke bagian sisi, contohnya bila property anchor sebuah komponen kita atur akLeft=true, akright=true
maka lebar komponen tersebut akan  membesar dan mengecil apabila form diresize
Sebelum form resize
Setelah form diresize
Tapi kedua property tadi tidak akan mengubah resolusi komponen tersebut, hanya peletak posisinya aja yang berubah.
Nah untuk mengubah resolusinya, mungkin sulosinya gini kali yah…. he he he
procedure TForm1.UbahResolusi
(Fr: TForm; LebarLayar, tinggilayar: LongInt) ;
begin
Fr.Scaled := True;
Fr.AutoScroll := False;
//F.Position := poScreenCenter;
Fr.Font.Name := ‘Arial’;
if (Screen.Width <> LebarLayar) then begin
Fr.Height :=
LongInt(Fr.Height) * LongInt(Screen.Height)
div tinggilayar;
Fr.Width :=
LongInt(Fr.Width) * LongInt(Screen.Width)
div LebarLayar;
Fr.ScaleBy(Screen.Width,LebarLayar) ;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
UbahResolusi( form1, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
// GetSystemMetrics adalah function untuk mengecek lebar atau tinggi layar
end;
Dengan procedure tersebut maka form dan semua komponen yang ada didalamnya akan menyesuaikan dengan nilai lebar dan tinggi layar.
Tapi agar hasilnya lebih maksimal kita bisa padukan antara procedure tersebut dengan property anchor dan alignment
Moga bisa membantu.

1 komentar:

  1. mas, saya buat aplikasi yang form-nya:
    1. align :=alclient;
    2. borderstyle := bsnone;
    3. windowstate := wsnormal;

    program utk presensi sehingga jalan terus selama komputer hidup. kadang2 diminimize buat jalanin program lain, bahkan resolusi layar diubah.
    pada resolusi layar yg beda ini, ketika program di-restore kok nggak bisa fit di screen... onFormResize udah di sesuaikan gitu. trus di application.onRestore:=form1.onResize;
    tulung ya

    BalasHapus