イベントの発生順序をみてみよう

オブジェクトインスペクタで、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.


up next
Last update: 2002/9/14