DELPHI7 如何在编写可视组件中传递一个事件到组件外部?

原创 2004年08月31日 22:41:00

在编写组件中,常常有一些事件,其控件是在组件内,而其中的某一事件的代码要在组件外写。以一个按钮的OnClick事件为例:

在类中设置如下代码:

private
    FOnClick: TNotifyEvent;
    procedure ClickTransfer(Sender: TObject);  { TNotifyEvent }
publish
    property OnClick: TNotifyEvent read FOnClick write FOnClick;

 在实现部分:
procedure 类名.ClickTransfer(Sender: TObject);
{ Transfers LButtonFind OnClick event to the outside world. }
begin
  if assigned(FOnClick) then
    FOnClick(Self);  { Substitute Self for subcomponent's Sender. }
end;  { ClickTransfer }

在create中加入一条语句:
constructor 类名.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  {Place your custom initialization code here.}
  ButtonFind.OnClick := ClickTransfer;
end;

在create中,将控件的OnClick 事件与ClickTransfer绑定。

那么。在窗口有你加上一个你自制的组件,在组件的事件列表中会有一个OnClick事件。

在这个事件中的代码,当你按下组件中的按钮时,会执行。其执行关键是:

  if assigned(FOnClick) then
    FOnClick(Self);  { Substitute Self for subcomponent's Sender. }

这句话是说如果你在用此组件时,在其OnClick中写了代码,即会被执行。

 

2004/08/31 T

后台调用外部程序的完美实现(Delphi)

最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没有源代码,幸好,我要做的事不难,只需要在我的程序启动后,将那个软件打开,在需要的时候,对其中的一个文本矿设...
  • scmzw
  • scmzw
  • 2005-07-10 11:46:00
  • 1275

Delphi调用一个外部程序时,如何把外部程序的窗体放在主程序窗体的Panel上?

uses shellapi; ... procedure TForm1.Button2Click(Sender: TObject); var vh: HWND; begin ShellEx...
  • xieyunc
  • xieyunc
  • 2013-12-16 21:35:03
  • 2426

vue子组件的使用和事件传递

vue子组件的使用和事件传递 在使用vue进行编程的时候我们经常会遇到在多个界面重用功能,比如联动的下拉框,重复的表单等等。如果在每个模块里面都重新写一遍,在发生变更的时候需要修改很多的界面,导致了...
  • wild46cat
  • wild46cat
  • 2017-12-01 04:54:59
  • 746

VUE中子组件向父组件传递事件

两种方式,使用场景有区别 1、这也是官网中的例子。父组件中使用on来监听自定义事件test:      子组件中使用emit来分发事件test      methods:{          ...
  • flyhorse1010
  • flyhorse1010
  • 2017-11-30 15:19:46
  • 301

C# winform中一个类中如何调用另一个窗体的控件或方法

转载地址:http://blog.csdn.net/ichenqingyun/article/details/52622340 一种是创建窗体对象的方式,通过对象调用控件或方法 例如: F...
  • liwb1987
  • liwb1987
  • 2017-12-06 11:59:29
  • 156

delphi控件使用

Standard页 1-      Tlistbox控件 重要属性items.* 举例,界面设计如下左,执行结果如下右:      代码为 procedure TF...
  • delphi308
  • delphi308
  • 2013-08-08 21:07:08
  • 8567

在一个Workflow中传递Session参数或变量值

  • 2014年12月13日 22:15
  • 3.5MB
  • 下载

delphi7 属性

  • 2012年06月21日 16:19
  • 11KB
  • 下载

Delphi中DLL两种调用方式的比较

摘要:本文阐述了Windows环境下动态链接库的概念和特点,对静态调用和动态调用两种调用方式作出了比较,并给出了Delphi中应用动态链接库的实例。 一、动态链接库的概念 动态链接库(Dynamic ...
  • litongling
  • litongling
  • 2006-01-17 15:12:00
  • 954

Delphi 自定义事件的例子

我们这个控件将演示控件的自定义事件的书写。这个控件有一个类型为string的SensitiveText属性,当用户在输入框中输入的文字为InvalidText时就会触发OnSensitiveText事...
  • cml2030
  • cml2030
  • 2008-10-28 11:36:00
  • 6362
收藏助手
不良信息举报
您举报文章:DELPHI7 如何在编写可视组件中传递一个事件到组件外部?
举报原因:
原因补充:

(最多只允许输入30个字)