Pada event handler, parameter “sender” menunjukkan pada komponen yang menerima event tersebut (OnKeyPress, OnDblClick, OnMouseDown, dan event lainnya).
Terkadang kita memerlukan penanganan event handler sama untuk beberapa komponen. Contoh kasus: setiap editbox yang aktif akan kita beri warna aqua. Akan sangat merepotkan bila kita harus mengisi event OnEnter pada setiap edit. Kita dapat memanfaatkan parameter sender ini.
procedure TForm1.Edit1Enter(Sender: TObject);
begin
tedit(sender).Color:=claqua;
end;
Supaya event OnEnter pada edit1 ini berlaku untuk semua editbox yang ada, arahkan semua event OnEnter setiap setiap editbox pada event Edit1Enter.
Caranya: buka tab events untuk edit yang bersangkutan pada Object Inspector. Klik pada event OnEnter, pilih Edit1Enter.
Begitu pula jika event yang kita tangani melakukan pekerjaan yang hampir sama pada beberapa komponen dengan perbedaan terletak hanya pada komponen pemanggilnya saja, kita dapat menanganinya dengan meletakkan coding pada satu event handler saja, selanjutnya kita gunakan pernyataan if…then…else sebagai pembeda. Sebagai contoh, segmen progam dibawah ini menampilkan caption label1 antara Button1, Button2 dan Button3.
procedure TMainForm.Button1Click(Sender: TObject);
begin
if sender = Button1 then
Label1.Caption := ‘Button1 ditekan’
else
if sender = Button2 then
Label1.Caption := ‘Button2 ditekan’
else
if sender = Button3 then
Label1.Caption := ‘Button3 ditekan’
end;
Selamat mencoba :)
No comments:
Post a Comment