Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 6853|回复: 8

lazarus怎么注册函数?

[复制链接]

该用户从未签到

发表于 2009-5-13 09:10:16 | 显示全部楼层 |阅读模式
lazarus怎么注册函数?
回复

使用道具 举报

该用户从未签到

发表于 2009-5-13 10:30:41 | 显示全部楼层
什么是注册函数?就是声明一个函数吗?
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-5-14 08:10:02 | 显示全部楼层
我定义一个函数,然后注册给一个变量,
存放函数地址在内存里面以便调用,例如:
type
  TPro = procedure;
var
    F: Pointer;
    Pro: TPro;
@Pro := F;
这样在delphi里面完全可以使用,不知道在lazarus里面怎么使用?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-5-22 14:06:49 | 显示全部楼层
將{$mode objfpc}
改為 {$MODE DELPHI}    即可
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-5-23 08:34:34 | 显示全部楼层
{$MODE DELPHI} 模式可以在非windows平台编译吗?
我发现主要还是类型不匹配的问题,改为类型一致即可。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-6-24 21:01:34 | 显示全部楼层
@codeigniter:
  1)  使用 Delphi 兼容模式的代码可以在非 Windows 平台下编译,也可以编译到非 Windows 平台。语言模式与 target 无关。
  2)  你的意思是函数指针吧。
  1. program FP;
  2. type
  3.   TProcedure = procedure;
  4. procedure MyProc;
  5. begin
  6.   Writeln('MyProc invoked.');
  7. end;
  8. var
  9.   F: TProcedure;
  10.   SomePtr: Pointer;
  11. begin
  12.   F := @MyProc;
  13.   F;
  14.   SomePtr := @MyProc;  { 也可以放在指针里 }
  15.   TProcedure(SomePtr); { 当然调用时要做类型转换 }
  16. end.
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-6-24 21:17:27 | 显示全部楼层
又学了一着
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-6-25 08:05:37 | 显示全部楼层
对,主要还是类型的问题。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-9-9 20:33:18 | 显示全部楼层
將{$mode objfpc}
改為 {$MODE DELPHI}    即可
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-3 10:25 , Processed in 0.031415 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表