14 Juni 2009

Mengungkap Kegunaan Method CreateParams (Bagian 3)

Method CreateParams yang dijalankan sebelum membuat kontrol yang berbasis window, dapat kita manfaatkan untuk mengatur parameter-parameter yang dikirim ke fungsi CreateWindowEx. Sebagai contoh pada TForm terdapat properti WindowState yang bisa memiliki nilai wsMaximized, wsMinimized atau wsNormal. Selain mengubah properti dari TForm, kita dapat melakukannya dengan mengaktifkan flag WS_MAXIMIZE dari method CreateParams.
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or WS_MAXIMIZE;
end;

Contoh diatas tidaklah terlalu bermanfaat, tapi banyak hal yang bisa dilakukan dengan cara ini yang tidak bisa didapat dengan mengatur properti dari suatu komponen. Misalnya pada komponen standar Delphi TEdit. Komponen ini tidak bisa menampilkan teks rata kanan. Dengan CreateParams, itu bisa diatur. Sebelumnya perlu kita tahu bahwa kita harus melakukan perubahan tersebut dengan set parameter dari method CreateParams. Langkah pertama adalah dengan membuat class/komponen baru yang diturunkan dari class TEdit. Ini diperlukan supaya kita dapat override method CreateParams.
type
  TMyEdit = class(TEdit)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

Langkah kedua pada bagian implementasi kita atur parameter Style dengan konstanta ES_RIGHT.
procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or ES_RIGHT;
end;

Terakhir adalah menampilkan komponen baru yang kita buat tadi. Misalnya pada event Form.OnCreate:
with TMyEdit.Create(Self) do
begin
  Parent := Self;
  Left := 10;
  Top := 80;
  Text := 'Tes 123';
end;

Supaya lebih mudah kita bisa membuat komponen baru yang di register ke component pallete dengan salah satu properti yang bisa mengubah teks rata kiri, rata kanan atau ditengah. Ini merupakan satu contoh saja. Ada banyak konstanta yang bisa dipakai untuk mengubah parameter Style. Untuk mengingatkan lagi semua konstanta yang ada terdapat pada unit Windows.pas, jadi mungkin dengan melihat dan mengamati unit tersebut merupakan hal yang berguna. Atau bisa dengan melihat dokumentasi tentang Windows API untuk informasi yang lebih detail tentang konstanta yang ada dan kegunaannya.

Tidak ada komentar:

Posting Komentar