|
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.
|