关于函数指针的问题? 我觉得F:=Test;应该比较合适。另外声明为of Object应该,实际上是给Class中的Method使用的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我对Delphi的指针操作,实在有些胡涂。Test本身就是指针了,@test应该是指向Test的指针,为什么会能一样呢?实在是奇怪。 实际上 F:=TEST这一句,Delphi会自己把它转换为 F:=@TEST就这一点而言,Delphi并没有C++严格(也可以说比C++智能:既然F是一个指针,那当然应该取TEST的地址给它啊)。 我想这是delphi的妙处,test本身是指针(就象编译后的函数向量表),f:tfun也说明的是指针(但是一个实例的载体),@test还是指针(是编译过程计算出来地址的指针),效果真的一样,实质是不是一样就要看在那个层面上理解和分析了。 object pas 是严谨的计算机言语,她的编译器会对赋值语句的两边数据类型进行检查(她可不认为只要类型大小一样就能赋值),上面有朋友说这是“智能”的表现,我觉得有偏见。显然TFun=Function(X:Integer;Y:Double=2.3):Boolean;和TFun=Function(X:Integer;Y:Double=2.3):Boolean of Object;不是相同的数据类型。就这个问题深入一点讨论:TFun=Function(X:Integer;Y:Double=2.3):Boolean; 是一个 32 位指针而TFun=Function(X:Integer;Y:Double=2.3):Boolean of Object; 实际上是由两个 32 位指针组成,一个是函数指针,一个是 Object 指针。"URW3537"错是一个不正常的错误,原因是 delphi 内部 bug(只有 delphi 开发小组才能解释),当然它不应该经常出现,否则 delphi 就别混了。根据经验这种错误在某种非常规操作下会出现。 比较同意qkl(康)的看法, 在windows.pas中有一申明:TWindowHook TWindowHook = function (var Message: TMessage): Boolean of object; 看一看它的用法吧! 我也不清楚的。 求助:怎样实现控制鼠标点击IE网页中的某个按钮 请问下 ExitProcess 过程的作用 Image怎么从数据流中加载图片而不是硬盘上 100分求问?adoquery 组件 怎么让DBLookupComboBox 默认显示 "请选择.."这样呢? 我想定义一个组合键来实现BUTTON的onclick 事,怎么做?是不是在onkeydown事件里! 关于数据库成批修改的问题 请教点FASTREPORT的问题 处理其它窗口系统菜单的事件 关于输入的问题 socket的sendbuf()和receivebuf()到底应该怎么写??? sos!!9.11
F:=TEST
这一句,Delphi会自己把它转换为
F:=@TEST
就这一点而言,Delphi并没有C++严格(也可以说比C++智能:既然F是一个指针,那当然应该取TEST的地址给它啊)。
显然
TFun=Function(X:Integer;Y:Double=2.3):Boolean;
和
TFun=Function(X:Integer;Y:Double=2.3):Boolean of Object;
不是相同的数据类型。就这个问题深入一点讨论:
TFun=Function(X:Integer;Y:Double=2.3):Boolean; 是一个 32 位指针
而
TFun=Function(X:Integer;Y:Double=2.3):Boolean of Object; 实际上是由两个 32 位指针组成,一个是函数指针,一个是 Object 指针。"URW3537"错是一个不正常的错误,原因是 delphi 内部 bug(只有 delphi 开发小组才能解释),当然它不应该经常出现,否则 delphi 就别混了。根据经验这种错误在某种非常规操作下会出现。
在windows.pas中有一申明:TWindowHook
TWindowHook = function (var Message: TMessage): Boolean of object; 看一看它的用法吧!
我也不清楚的。