begin
end;
Biz unga quyidagi o`zgartirishni kiritamiz:
procedure TForm1.FormClick(Sender: TObject);
begin
MessageDlg('Salomlar !!!', mtInformation, [mbOk], 0);
end;
Yuqoridagi amallar bajarilgach, dastur ishga yuklanidan so`ng formaning istalgan qismida sichqonchaning chap tugmasi bosilsa quyidagi oyna hosil bo`ladi:
Yuqoridagi misoldan ko`rinib turibdiki, qandaydir xodisa ro`y berganida javob olish mumkin ekan. Ko`pchilik dasturchilar bu vaqtda qanday jarayon bo`layotganligini tushunmay dastur tuzadilar. Shuni aytish mumkinki, har-bir xodisa ro`y berganida operatsion sistema bu xodisani aniqlaydi va dasturga xodisaning turi xaqidagi xabarni uzatadi. Misol qilib forma sirtida sichqonchaning chap tugmasi bosilganida ro`y beradigan xodisani ko`rishmuz mumkin. Buning uchu xodisa sahifasidan OnMouseDown xodisasi tanlanadi va dasturga quyidagi o`zgartirish kiritiladi:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Canvas.TextOut(X, Y, 'X='+IntToStr(X)+' Y='+IntToStr(Y));
end;
Dasturni ishga yuklab forma sirtida sichqonchaning chap tugmasi bosilsa quyidagiga o`xshash natijani ko`rish mumkin:
Ko`rinib turibdiki, xodisalar bilan ishlash unchalik murakkab emas ekan. Yana bir misol sifatida quyidagi dasturni ko`rishimiz mumkin (OnKeyDown (tugmacha bosilganida) xodisasi):
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
MessageDlg(Chr(Key), mtInformation, [mbOk], 0);
end;
Dasturni ishga tushirib qanday natija chiqishini bilib olarsiz.
Yuqoridagi yozuvlardan foydalanib xodisa nima ekanligini bilb oldik. Endi yangi xodisa yaratishni ko`rib chiqamiz. Xodisa yaratishning umumiy ko`rinishi quyidagicha bo`ladi:
procedure Handler_Name(var Msg : MessageType); message WM_XXXXX; bu erda
Handler_Name – uslub nomi; Msg – uzatiluvchi parametr nomi;
MessageType - xabarga mos keluvch qandaydir bir tip;
message – xizmatchi so`zi joriy uslub xabarlarni qayta ishlovchi ekanligini bildiradi;
WM_XXXXX – konstanta yoki amal, yani Windows xabarini aniqlovchi nomer.
Xabarlarni qayta ishlashni misol yordamida ko`rib chiqamiz. Misol uchun sichqonchaning o`ng tugmasi forma sirtida bosilganida qandaydir xabarnoma chiqsin. Dastlab yangi proyekt yaratiladi (File/NewApplication). So`ngra kodlar oynasiga o`tiladi(F2). U yerda quyidagi dasturni ko`rishimiz mumkin:
unit Unit1; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm) private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
implementation
{$R *.DFM}
end.
Uni quyidagicha o`zgartiramiz:
unit Unit1; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm) private
{ Private declarations }
procedure WMRButtonDown(var Msg: TWMMouse); message
WM_RBUTTONDOWN;
public
{ Public declarations }
end; var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMRButtonDown(var Msg : TWMMouse);
begin
MessageDlg('Sichqonchaning ung tugmasi bosildi.', mtInformation, [mbOK], 0);
end; end.
Dastur ishga yuklanib forma sirtida shichqonchaning o`ng tugmasi bosilsa, quyidagi dialog oynasi hosil bo`ladi:
Do'stlaringiz bilan baham: |