Merubah Warna Textbox Pada Saat Mendapatkan Focus [DevEx : 1]

Dear Delphiers,
Kadang-kadang kita menghendaki komponen textbox berubah warnanya ketika dia mendapat focus. Hal ini bisa saja kita lakukan dengan mengkombinasikan event OnEnter dan OnExit pada komponen textbox tersebut. OnEnter untuk merubah warna ketika mendapatkan focus dan OnExit kita pakai untuk mengembalikan warna semula. Namun hal ini bukanlah cara yang Robust. Dengan cara ini kita harus menerapkannya pada tiap komponen. Ya kalau Cuma satu Form? Bagaimana kalau pada semua form? Bisa dibayangkan bagaimana susahnya merealisasikan keinginan tersebut.



Ada cara yang lebih mudah. Yaitu dengan menggunakan komponen dari DevExpress. Di sini saya menggunakan komponen cxTextEdit. Ikutilah langkah-langkah berikut :

1. Tempatkan sebuah komponen cxEditStyleControllerStyle pada form;

2. Setting property StyleFocused sesuai Keinginan. Disini saya melakukan setting property StyleFocused seperti gambar di bawah ini



Free Image Hosting

1. Kemudian pada Event OnClick dari form tuliskan baris kode berikut :

for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TcxCustomTextEdit then
begin
(Components[i] as TcxCustomTextEdit).StyleFocused.StyleController := cxEditStyleController;
(Components[i] as TcxCustomTextEdit).Style.StyleController := cxEditStyleController;
(Components[i] as TcxCustomTextEdit).StyleDisabled.StyleController := cxEditStyleController;
end;
end;

Pada baris kode di atas, program akan mengecek semua komponen yang ada pada form. Jika komponen tersebut merupakan komponen TcxCustomTextEdit (demikian juga komponen-komponen turunannya) maka program akan mengeset StyleController pada saat focus,normal, dan disable hasilnya bisa dilihat digambar berikut :

Free Image Hosting



5 comments:

Widodo said...

Pake DevExpress ya mas Bagus.

Komponennya memang keren abis!

Bagus Prasojo said...

@Widodo : Iya mas. Ada pengalaman pake DevExpress?

Widodo said...

Pake express quantum grid. :)

Anonymous said...

pake yg biasa jg bisa bro....
onenter
edit1.color:=clgreen
onexit
edit1.color:=clmenu

Bagus Prasojo said...

hmmm kalo pake kayak gitu berarti harus nulis di tiap2 komponen ya?

Post a Comment