事件(Event)编程,好玩.

saoren saoren 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
{看了事件编程觉得很有趣,特向大家介绍心得.}

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 模拟产生键盘事件、鼠标事件的使用

模拟鼠标、模拟键盘事件,有时候非常有用,比如在自动化测试中

dijkstar

EventBus与Spring Event区别详解(EventBus 事件机制,Spring Event事件机制)

主要介绍了EventBus与Spring Event区别,需要的朋友可以参考下

weixin_38606639

深入理解 Event Loop事件循环机制

Event Loop事件循环机制 事件循环机制(Event Loop)是全面了解javascript代码执行顺序绕不开的一个重要知识点。 为什么会有事件循环机制? javascript从诞生之日起就是一门单线程的非阻塞的脚本语言。这是由其最初的用途来决定的:与浏览器交互。 首先等来了解js为什么是单线程的吧! 首先要明白线程的概念? 进程是资源分配的最小单位,线程是进程的一部分,是cpu调度的基本单位; 了解浏览器 浏览器中,每次打开一个tab页面,其实就是新开了一个进程,在这个进程中,还有js引擎线程、ui渲染线程、http请求线程。 这里面还可深入了解js引擎线程、ui渲染线程、http请

weixin_38626858

Event事件总汇资源下载 event事件大全!请支持啊

资源下载 event事件大全!请支持啊资源下载 event事件大全!请支持啊

大桑树
评论 6
收藏 已收藏
分享
返回顶部
saoren
Delphi 5,944 成员 262,941 内容