オブジェクトインスペクタで、TForm を選択して、イベントページを見てみると、OnClick、OnDblClick、OnMouseDown、OnMouseUp がありますが、これは、どのような順番で発生するのかを、みてみましょう。また、 OnCreate、OnActive、OnShow イベントの発生順番も見てみる事にします。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; ListBox2: TListBox; procedure FormClick(Sender: TObject); procedure FormDblClick(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FormShow(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormClick(Sender: TObject); begin ListBox1.Items.Add('Click'); end; procedure TForm1.FormDblClick(Sender: TObject); begin ListBox1.Items.Add('DblClick'); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ListBox1.Items.Add('MouseDown'); end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ListBox1.Items.Add('MouseUp'); end; procedure TForm1.FormCreate(Sender: TObject); begin ListBox2.Items.Add('Create'); end; procedure TForm1.FormActivate(Sender: TObject); begin ListBox2.Items.Add('Active'); end; procedure TForm1.FormShow(Sender: TObject); begin ListBox2.Items.Add('Show'); end; end.