社区
Delphi
帖子详情
关于函数指针
xthmpro_cn
2004-10-22 12:44:45
我将一个类函数扶植给两个控件的OnKeyDown事件,我在代码中如何比较这两个控件使用的是OnKeyDown是同一个函数?
谢谢!
...全文
146
7
打赏
收藏
关于函数指针
我将一个类函数扶植给两个控件的OnKeyDown事件,我在代码中如何比较这两个控件使用的是OnKeyDown是同一个函数? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hottey
2004-10-22
打赏
举报
回复
函数地址是一样的啊!
快乐老猫
2004-10-22
打赏
举报
回复
直接用=就可以
Bitter_fish
2004-10-22
打赏
举报
回复
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class( TForm )
Button1: TButton;
Button2: TButton;
B_Check: TButton;
procedure B_CheckClick( Sender: TObject );
procedure FormCreate( Sender: TObject );
private
P_OnKeyDown1, P_OnKeyDown2: Pointer;
procedure KE1( Sender: TObject; var Key: Word; Shift: TShiftState );
procedure KE2( Sender: TObject; var Key: Word; Shift: TShiftState );
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate( Sender: TObject );
begin
Form1.Button1.OnKeyDown := KE1;
Form1.Button2.OnKeyDown := KE2;
//改为 Form1.Button2.OnKeyDown := KE1; 试一下
end;
procedure TForm1.B_CheckClick( Sender: TObject );
begin
P_OnKeyDown1 := @Form1.Button1.OnKeyDown; //检察是否同一例程
P_OnKeyDown2 := @Form1.Button2.OnKeyDown;
ShowMessage( inttostr( integer( P_OnKeyDown1 ) ) );
ShowMessage( inttostr( integer( P_OnKeyDown2 ) ) );
if P_OnKeyDown1 = P_OnKeyDown2 then
ShowMessage( 'YES' )
else
ShowMessage( 'NO' );
end;
procedure TForm1.KE1( Sender: TObject; var Key: Word; Shift: TShiftState );
begin
ShowMessage( 'This is KE1' );
end;
procedure TForm1.KE2( Sender: TObject; var Key: Word; Shift: TShiftState );
begin
ShowMessage( 'This is KE2' );
end;
end.
ghchen
2004-10-22
打赏
举报
回复
可以在函数里修改变量
xthmpro_cn
2004-10-22
打赏
举报
回复
看Sender是不行的,我不是在函数内比较,而是在函数外比较后,如果不等于某个函数,重新赋值.
请大家帮忙
tsst
2004-10-22
打赏
举报
回复
看sender
xthmpro_cn
2004-10-22
打赏
举报
回复
呵呵给分了!
让你不再害怕指针
此外,指针还可以指向函数,创建
函数指针
,实现函数回调或
函数指针
数组等高级特性。 7. const限定符与指针 const关键字可以用于指针,表示指针不可变(const int *ptr)或指针所指向的内容不可变(int *const ptr)...
C/C++ 指针的13份资料
7. **
函数指针
**:
函数指针
可以指向一个函数,使得可以作为参数传递或存储在数据结构中。例如,`void (*func_ptr)(int)`声明了一个接受整型参数并无返回值的
函数指针
。 8. **动态内存管理**:通过`malloc()`和`...
C语言
函数指针
和指针函数
写法不同可以简单粗暴的理解为,指针函数的是属于数据类型的,而
函数指针
的星号是属于函数名的。再简单一点,可以这样辨别两者:函数名带括号的就是
函数指针
,否则就是指针函数。
关于
函数指针
数组与返回数组指针的函数
第一种情况为数组里面是
函数指针
的情况,因为(int (*)(int))是一个强制转换方式, 将里面的a[]这个数组转换成了一个
函数指针
的数组, 并且该函数是一个带一个整型变量,并且返回一个整型的函数. 第二种情况为函数返回的...
【C++】关于
函数指针
的定义方式
这种比较好理解,定义一种返回值为void,形参1为int,形参2为int,这种类型的
函数指针
,并为这种指针取名为myfunction1;使用的时候也像平时定义普通变量一样去使用就行;
Delphi
5,929
社区成员
262,934
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章