Delphi 的 &宏替换之一 (wzs)(0分)

  • 主题发起人 主题发起人 wzs
  • 开始时间 开始时间
W

wzs

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button2: TButton;
procedure Button2Click(Sender: TObject);
Function test:Integer;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
Function TForm1.test:integer;
begin
showmessage('我是一行,^_^ ');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Proc:Procedure;
begin
@proc:=MethodAddress('test');
Proc;
end;

end.
------------------------------------------------
多多回应!!!!!!!!!!!!!!!
 
英雄所见略同!
我以前写过一个程序,使用了动态菜单,曾用到wzs兄的方法。
 
知道,也不说!
害我这几天摸呀摸的! ^_^
 
你在摸什么?MM?
 
你又没问。
 
fossil 是不是没的摸!!!!!!!!!!!!!!! 嘻嘻嘻嘻.........
 
一行大师,别来无恙?
你的每贴必藏。
 
好啊,我又学到了一个技术!^_^
 
飞龙在天 ,那参数怎么传!
 
可惜还是没有c的宏方便
 
wzs:一个传参数的例子
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Math;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
published
procedure Test(P: Integer);
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Test(P: Integer);
begin
ShowMessage(IntToStr(P + 1));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
proc: procedure(P: Integer) of object;
begin
@proc := MethodAddress('Test');
proc(10);
end;

end.

怎么样,能用的话,给分吧。
 
学一招,高手们,多谢啦!
是不是我没有学c的原因,这么简单的我都没有想到。
 
type
TmyProc=function(P: Integer):variant;
.....
procedure TForm1.Test(P: Integer);
begin
ShowMessage(IntToStr(P + 1));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
myfunc:TFarProc;
begin

.....
myfunc:=GetProcAddress(handle,'Test');
TmyProc(myfunc)(10);
...
end;

这样写可否?
 
谢谢wzs,谢谢各位,解决我的问题了。
 
谁知道怎样将一个函数指针指向类的构造函数?
 
请问飞龙在天,为什么我要用的procedure一定要申明在Published中呢?
 
to lbsong:
这大概是MethodAddress的限制,我也不知道具体原因。
 
不觉的在 三层中的中间层很有用?!
 
后退
顶部