Limiting form size dengan WM_GETMINMAXINFO

Saat program dijalankan kadang” kita ingin agar user tidak bisa merubah ukuran form yang kita buat, bagaimana agar kita dapat melakukannya? Untuk melakukan hal ini ada beberapa cara yang dapat kita lakukan, salah satunya adalah dengan menggunakan prosedur WM_GETMINMAXINFO.

WM_GETMINMAXINFO adalah suatu prosedur dimana di dalamnya kita bisa mengatur tinggi maupun lebar dari sebuah form. Baik ukuran minimum maupun maksimum dapat kita set disini. Jadi, apabila kita tetapkan ukuran minimum = ukuran maksimum hal ini tentu saja mengakibatkan form tidak bisa di resize sama sekali.

Berikut adalah cara menggunakannya:


Deklarasikan prosedur WM_GETMINMAXINFO dengan format,

procedure WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );                      
message WM_GETMINMAXINFO;
 
Tempatkan deklarasi dari prosedur tersebut dibawah private declaration seperti berikut:
 
     type
     TForm1 = class(TForm)
     private
     { Private declarations }
      procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
                message WM_GETMINMAXINFO;

Kemudian di bawah bagian implementation tuliskan detail dari prosedur tersebut.

Ex:

 
procedure TForm1.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );
     begin
     with Message.MinMaxInfo^ do
     begin
        ptMinTrackSize.X := 100;           {lebar minimum}
        ptMinTrackSize.Y := 100;           {tinggi minimum}
        ptMaxTrackSize.X := 300;           {lebar maksimal}
        ptMaxTrackSize.Y := 300;           {tinggi maksimal}
     end;
        Message.Result := 0;                 
     end;
 
Jalankan program anda dan coba untuk mengubah ukuran formnya.
 
Selamat Mencoba.

Tidak ada komentar: