如: 在Form1窗体中定义了一个方法MessageShow(str : string),
这个方法通过字符串保存在数据库某个字段中,如Field1这个字段中,现在我想通过从数据库中找到这个字符串,然后通过个字符串在Form1中调用巳定义好的方法,这个应该怎样写
这个方法通过字符串保存在数据库某个字段中,如Field1这个字段中,现在我想通过从数据库中找到这个字符串,然后通过个字符串在Form1中调用巳定义好的方法,这个应该怎样写
解决方案 »
- 最小化问题
- 谁能给出一个国标GB到UTF8编码的转换函数啊?
- 在Delphi中如何将sqlserver的表导出到VFP中去?揭帖率100%
- 如何在网站上下载一个相应的exe文件?
- EmbeddedWB使用的问题,如何判断链接是target='blank',还是没有,我想用以判断是否需要新开页面。
- record中的point的size是0,还是1啊?
- 关于大数据量的负载均衡算法问题,请高手不吝赐教
- 请教InstallShield Express For Delphi 5/6的下栽地址,
- 求图片切割算法,各位大神帮帮忙,搞了好多天了还没弄出来
- 解决form闪动问题,解决后一定给分
- 如何获取照片缩略图?
- listview插入到指定的列?
TForm1 = class(TForm)
Button1: TButton;
procedure aaa();
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function ExecMethodByName(AObject: TObject; AName: string): variant;
public { Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.aaa;
begin
showmessage( 'aaaa' );
end;function TForm1.ExecMethodByName(AObject: TObject; AName: string): variant;
var
PAddr: Pointer;
begin
try
PAddr := AObject.MethodAddress(AName);
asm
mov eax, AObject
call PAddr
mov Result, eax
end;
except
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//取出aaa
ExecMethodByName( self,'aaa' );
end;
TForm1 = class(TForm)
Button1: TButton;
procedure MessageShow;//.....procedure TForm1.MessageShow;
begin
Showmessage('OK,但参数怎么办');
end;procedure TForm1.Button1Click(Sender: TObject);
var
Proc : TProcedure;
ProcName : string;
begin
ProcName := 'MessageShow';
Proc := TForm1.MethodAddress(ProcName);
if Assigned(Proc) then Proc;
end;但,传参,怎么做?
TMyMethod = procedure(p: Integer) of object; TForm1 = class(TForm)
Button1: TButton;
procedure bbb( i:integer );
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure InvokeMyMethod( Obj:TObject; const MethodName:String; param:Integer );
public { Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
InvokeMyMethod( self,'bbb',1 );
end;procedure TForm1.bbb(i: integer);
begin
showmessage( inttostr( i ) );
end;procedure TForm1.InvokeMyMethod( Obj:TObject; const MethodName:String; param:Integer );
var
aMethod:TMethod;
begin
aMethod.Code:= Obj.MethodAddress( MethodName );
aMethod.Data:= Obj;
TMyMethod(aMethod)( param );
end;end.
TMyMethod = procedure(p: Integer) of object;嗯,感谢!