Fiddy's Room

Membuat Efek Flat

Kadang kala kita mungkin ingin membuat tampilan program kita sedikit berbeda dengan biasanya. Dengan tips berikut ini Anda bisa membuat komponen checkbox, radiobutton dan button menjadi flat.

procedure TForm1.Flatten(theControl: TWinControl);
var
   dwStyle: Longint;
begin
     dwStyle := GetWindowLong(theControl.handle, GWL_STYLE) or                 BS_FLAT;
     SetWindowLong(theControl.Handle, GWL_STYLE, dwStyle);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
     Flatten(Button1);
     Flatten(CheckBox1);
     Flatten(RadioButton1);
end;

Di sini kita menggunakan salah satu fungsi (function) Windows API, yaitu GetWindowLong yang deklarasinya sbb:

function GetWindowLong (hwnd : HWND; int : integer) : integer;

Fungsi GetWindowLong digunakan untuk mencari informasi mengenai window tertentu. Window di sini bisa kita artikan sebagai komponen visual seperti checkbox, radio button dan sebagainya.

Parameter pertama dari fungsi GetWindowLong merupakan handle window dari komponen yang akan kita ubah menjadi flat. Parameter kedua merupakan informasi window yang akan kita ambil. Dalam hal ini parameter kedua tersebut kita isi dengan GWL_STYLE yang artinya kita ingin memperoleh informasi style dari window tersebut.

Fungsi kedua yang kita pakai adalah SetWindowLong. Fungsi tersebut adalah untuk mengubah atribut atau style dari suatu window.

Untuk mengetahui secara lebih detail tentang fungsi Windows API Anda dapat membaca di help yang disertakan pada saat kita menginstall Delphi, pada bagian Win32 Programmer’s Reference.

Adapun kode selengkapnya adalah sebagai berikut:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
CheckBox1: TCheckBox;
RadioButton1: TRadioButton;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
procedure Flatten(theControl: TWinControl);
procedure Flatten2(theControl: TEdit);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Flatten(theControl: TWinControl);
var
   dwStyle: Longint;
begin
     dwStyle := GetWindowLong(theControl.handle, GWL_STYLE) or                 BS_FLAT;
     SetWindowLong(theControl.Handle, GWL_STYLE, dwStyle);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
     Flatten(Button1);
     Flatten(CheckBox1);
     Flatten(RadioButton1);
end;
end.

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: