请问在delphi中怎么激发自定义事件(50分)

  • 主题发起人 主题发起人 wangwsu
  • 开始时间 开始时间
W

wangwsu

Unregistered / Unconfirmed
GUEST, unregistred user!
我在开发一个系统中要封装组件,在组件中自定义一个事件如下:
Eventq:TEvent;
Eventq:=TEvent.Create(nil,True,true,'AA');
Eventq.SetEvent;
但我不知道怎么触发他,请指教
 
看看Delphi源程序就是很好的例子!
 
我想首先應該清楚
從這個角度來說
應將軟件開發人員分為:組件設計者 和 程序設計者
組件設計者,設計相關組件,提供給程序設計者使用
而事件的代碼由程序設計者編寫
而事件則由組件內部調用
如:
TDataSet = class(TComponent)
...
BeforePost:TNotifyEvent;
procedure Post;
end
procedure Post;
begin
if Assigned(BeforePost) then BeforePost(Self);
...
end;

以上純屬示意,並不是從直接引用VCL中TDataSet的定義




 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type

Tt = class(TThread)

protected
procedure Execute; override;
public
h: Thandle;
c: integer;
end;
TForm1 = class(TForm)
Button1: TButton;

procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
t: tt;
public


end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);


begin
t := Tt.Create(false);
end;

{ Tt }

procedure Tt.Execute;
begin
c := 0;
h := CreateEvent(nil, false, false, 'AA');
while not Terminated do
begin
waitforsingleobject(h, 30000);
inc(c);
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetEvent(t.h)
end;

end.

 
看來我答得不對,關注中
 
激发自定义的事件和激发系统定义的事件是一样的啊。
没什么区别的啊。
不妨你去看看delphi自带的程序。
 
后退
顶部