函数地址(不知道是否确切!)

原创 2003年09月10日 11:29:00

本问参考网友的一篇TApplication的介绍而写的!

讨论的内容是只是个函数地址的东西!

假如你现在要在TStatusBar上显示时间,你可能有很多的方法,现在看这种:

void __fastcall TForm1::tryidle(TObject * Sender, bool & Done)
{
        Form1->StatusBar1->SimpleText=DateTimeToStr(Now());
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
        Form1->OnDblClick=tryer; 
        Application->OnIdle=tryidle;
         Form1->Button1->OnClick=Button3Click; 
}

如果你一定要问我:Sender和Done做什么用,我告诉你,根本没有用,只是为了凑成一个和Application->OnIdle一模一样的东西而已!

上边的资料取自www.chinabcb.com里的一篇文章!先边的是我自己考虑的东西,不知道有没有意思,如果你看了有帮助,那可别忘了谢谢那位幕后英雄啊!

其他的对象可以吗!我想也是可以的,于是我就继续,试一试TButton,就写了几个TButton在Form1上!

void __fastcall TForm1::Button3Click(TObject *Sender)
{
        ShowMessage("Button3Click!");
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
        Form1->OnDblClick=tryer;
        Application->OnIdle=tryidle;       

        Form1->Button1->OnClick=Form1->Button3->OnClick;

}

天呢,竟然不行!怎么办!改!

void __fastcall TForm1::Button2Click(TObject *Sender)
{
        Form1->OnDblClick=tryer;
        Application->OnIdle=tryidle;
        Form1->Button1->OnClick=Button3Click
}

保存在试,居然可以了!松了口气!

不过为什么不行呢!我不太明白!

查资料:TButton OnClick 是这么解释的!

Occurs when the user clicks the control.

__property Classes::TNotifyEvent OnClick = {read=FOnClick, write=FOnClick, stored=
IsOnClickStored};

Description

Use the OnClick event handler to respond when the user clicks the control. If the control has an associated action, and that action has an OnExecute method, the action抯 OnExecute method responds to click events unless it is superseded by an OnClick event handler.

Usually OnClick occurs when the user presses and releases the left mouse button with the mouse pointer over the control. This event can also occur when

The user selects an item in a grid, outline, list, or combo box by pressing an arrow key.
 The user presses Spacebar while a button or check box has focus.
 The user presses Enter when the active form has a default button (specified by the Default property).
 The user presses Esc when the active form has a cancel button (specified by the Cancel property).
 The user presses the accelerator key for a button or check box.

The Checked property of a radio button is set to true.
 The value of the Checked property of a check box is changed.
 The Click method of a menu item is called.

For a form, an OnClick event occurs when the user clicks a blank area of the form or on a disabled component.

TNotifyEvent 是什么东西呢!

NotifyEvent is used for events that do not require parameters.

Unit

Classes

typedef void __fastcall (__closure *TNotifyEvent)(System::TObjectTObject* Sender);

Description

The TNotifyEvent type is the type for events that have no event-specific parameters. These events simply notify the component that a specific event occurred. For example, OnClick, which is of type TNotifyEvent, notifies the control that a click event occurred on the control.

The Sender parameter is the object whose event handler is called.  For example,.with the OnClick event of a button, the Sender parameter is the button component that is clicked.

呵呵!

看明白没有啊!TNotifyEvent 是不需要参数的事件,那个Sender是个被呼叫的句柄!明白了没有,不过我是这么理解的!

你不知道的JavaScript演示代码Github地址

你不知道的JavaScript博文相关代码托管至Github,每次写完博客会把代码提交上去。代码地址:https://github.com/rongbo-j/you-dont-know-js点击Dow...
  • Rongbo_J
  • Rongbo_J
  • 2015年05月16日 22:24
  • 2332

如何讲好FISHER确切概率法

摘 要: FISHER确切概率法是双总体的比率假设检验的重要方法,也是数理统计教学的重要内容,但现有的课本对该方法原理的介绍都过于简略,以致学生往往很难理解和掌握该方法。本文针对这一实际情况,对FIS...
  • z54572
  • z54572
  • 2017年03月10日 16:20
  • 586

判断ip地址是否合法的函数

//判断IP地址是否合法 int check_ip(char *ip) { int i = 0, count = 0; const char *s = "."; char Te...
  • CodeHeng
  • CodeHeng
  • 2015年07月17日 13:42
  • 1930

你不知道的JavaScript(上卷)笔记

你不知道的JavaScript(上卷)笔记1.块作用域块作用域是一个用来对之前的最小授权(函数)进行扩展的工具,将代码从函数中隐藏信息扩展为在块中隐藏信息。有以下四种方式创建块作用域。1.1 with...
  • qq_27582155
  • qq_27582155
  • 2017年01月11日 09:31
  • 334

[C/C++] 一次跳出两层for循环的几种方法

1. 单独封成一个函数 #include #include //判断字符串a与字符串b是否相等 int fun(char a[],char b[]){ for(int i = 0;...
  • qq_36366423
  • qq_36366423
  • 2018年01月27日 20:22
  • 55

hdoj 2211 杀人游戏 【约瑟夫环】

杀人游戏Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss...
  • chenzhenyu123456
  • chenzhenyu123456
  • 2015年05月04日 12:53
  • 877

HDU 2211 杀人游戏

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2211 【科普】什么是BestCoder?如何参加? 杀人游戏 Time Limit:...
  • u013615904
  • u013615904
  • 2014年12月17日 22:32
  • 660

根据函数指针地址获取函数名

man backtrace_symbols_fd,里面有对应的实例,或也可参考 http://blog.csdn.net/snow168rain/article/details/52043719, 其...
  • zhqh100
  • zhqh100
  • 2017年03月30日 21:01
  • 869

第十章 会话管理——《跟我学Shiro》

Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、...
  • joeyon
  • joeyon
  • 2014年12月26日 14:51
  • 812

JavaScript中的this(你不知道的JavaScript)

JavaScript中的this,刚接触JavaScript时大家都在大肆渲染说其多么多么的灵巧重要,然而自己并不关心;随着自己对JavaScript一步步深入了解,突然恍然大悟,原来它真的很重要!所...
  • ligang2585116
  • ligang2585116
  • 2015年07月25日 19:44
  • 6134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数地址(不知道是否确切!)
举报原因:
原因补充:

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