事件(Event)编程,好玩.
{看了事件编程觉得很有趣,特向大家介绍心得.}
unit unit1;
uses
....
type
//定义一个我的事件.
TMyEvent :procedure(Sender :TObject;var Param :string) of Object;
TMyClass=class(TObjec)
private
FActive:Boolean;
FParam:string;
FEvent:TMyEvent;
procedure SetState(Value:boolean);
public
constructor Create(AOwner: TComponent);override;
procedure Open;
procedure Close;
publish
property Active :boolean read FActive write SetState;
property Param :string read FParam;
Event :TMyEvent read FEvent write FEvent;
end;
type
TForm1=class(TForm)
Button1:TButton1;
procedure Oncreate(Sender :TObject);
procedure ButtonOnClick(Sender :TObject);
private
Object:TMyClass;
procedure MyEvent(Sender:TObject;var Param:string);
public
end;
procedure TForm1.Oncreate(Sender :TObject);
begin
Object:=TMyClass.Create(Self);
Object.Event:=MyEvent;
end;
////////////////////////////////////////////////////
可以去掉这个procedure 看有什么效果.
procedure MyEvent(Sender:TObject;var Param:string);
begin
Param:='hello,test';
end;
////////////////////////////////////////////////////
procedure ButtonOnClick(Sender :TObject);
begin
Object.Open;//or Object.Close;
ShowMessage(Object.Param);
end;
procedure TMyClass.Create(AOwner :TComponent);
begin
FParam:='';
FActive:=False;
inherited Create(Self);
end;
procedure TMyClass.Open;
begin
SetState(True);
end;
procedure TMyClass.Close;
begin
SetState(False);
end;
procedure TMyClass.SetState(Value:boolean);
begin
if Value then
begin //事件处理.
if Assigned(Event) then Event(Self,FParam) else FParam='类对象没有调用Event事件';
end else if not Value then
begin
FParam:='类对象现在是没有激活(False Active)状态.';
end;
FActive:=Value;
end;
//欢迎大家来讨论事件编程
unit unit1;
uses
....
type
//定义一个我的事件.
TMyEvent :procedure(Sender :TObject;var Param :string) of Object;
TMyClass=class(TObjec)
private
FActive:Boolean;
FParam:string;
FEvent:TMyEvent;
procedure SetState(Value:boolean);
public
constructor Create(AOwner: TComponent);override;
procedure Open;
procedure Close;
publish
property Active :boolean read FActive write SetState;
property Param :string read FParam;
Event :TMyEvent read FEvent write FEvent;
end;
type
TForm1=class(TForm)
Button1:TButton1;
procedure Oncreate(Sender :TObject);
procedure ButtonOnClick(Sender :TObject);
private
Object:TMyClass;
procedure MyEvent(Sender:TObject;var Param:string);
public
end;
procedure TForm1.Oncreate(Sender :TObject);
begin
Object:=TMyClass.Create(Self);
Object.Event:=MyEvent;
end;
////////////////////////////////////////////////////
可以去掉这个procedure 看有什么效果.
procedure MyEvent(Sender:TObject;var Param:string);
begin
Param:='hello,test';
end;
////////////////////////////////////////////////////
procedure ButtonOnClick(Sender :TObject);
begin
Object.Open;//or Object.Close;
ShowMessage(Object.Param);
end;
procedure TMyClass.Create(AOwner :TComponent);
begin
FParam:='';
FActive:=False;
inherited Create(Self);
end;
procedure TMyClass.Open;
begin
SetState(True);
end;
procedure TMyClass.Close;
begin
SetState(False);
end;
procedure TMyClass.SetState(Value:boolean);
begin
if Value then
begin //事件处理.
if Assigned(Event) then Event(Self,FParam) else FParam='类对象没有调用Event事件';
end else if not Value then
begin
FParam:='类对象现在是没有激活(False Active)状态.';
end;
FActive:=Value;
end;
//欢迎大家来讨论事件编程
...全文
相关推荐
as3.0缓动放大的实例及代码 好玩
as3.0缓动放大的实例及代码 好玩,效果看上去非常可爱,弹性效果很好,之比较常见的as效果
keybd_event,mouse_event 模拟产生键盘事件、鼠标事件的使用
模拟鼠标、模拟键盘事件,有时候非常有用,比如在自动化测试中
EventBus与Spring Event区别详解(EventBus 事件机制,Spring Event事件机制)
主要介绍了EventBus与Spring Event区别,需要的朋友可以参考下
深入理解 Event Loop事件循环机制
Event Loop事件循环机制 事件循环机制(Event Loop)是全面了解javascript代码执行顺序绕不开的一个重要知识点。 为什么会有事件循环机制? javascript从诞生之日起就是一门单线程的非阻塞的脚本语言。这是由其最初的用途来决定的:与浏览器交互。 首先等来了解js为什么是单线程的吧! 首先要明白线程的概念? 进程是资源分配的最小单位,线程是进程的一部分,是cpu调度的基本单位; 了解浏览器 浏览器中,每次打开一个tab页面,其实就是新开了一个进程,在这个进程中,还有js引擎线程、ui渲染线程、http请求线程。 这里面还可深入了解js引擎线程、ui渲染线程、http请
Event事件总汇资源下载 event事件大全!请支持啊
资源下载 event事件大全!请支持啊资源下载 event事件大全!请支持啊


