首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于dll文件中过程参数传递有关问题

2012-03-14 
关于dll文件中过程参数传递问题我的代码中好多处用到编辑框清空,我想通过dll文件中过程参数传递解决。dll文

关于dll文件中过程参数传递问题
我的代码中好多处用到编辑框清空,我想通过dll文件中过程参数传递解决。dll文件中过程代码如下
    procedure     empty(s1,s2,s3,s4:string);stdcall
    begin
      s1:= ' ';
      s2:= ' ';
      s3:= ' ';
      s4:= ' ';

    end;
外面是这样的
empty   (edit1.text,edit2.text,edit3.text,edit4.text);但怎么就传不进去。请高手指教一下。

[解决办法]
TEdit类是在StdCtrls单元中定义的,你需要uses StdCtrls;
[解决办法]
楼上的办法也是办法中的一种. 但最好是模仿API函数的写法, 用空指针.

procedure Empty(A, B, C, D: TEdit;E:TMemo); stdcall;
begin
if A <> nil then A.Text := ' ';
if B <> nil then B.Text := ' ';
if C <> nil then C.Text := ' ';
if D <> nil then D.Text := ' ';
if E <> nil then E.Text := ' ';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
empty(Edit1, Edit2,Edit3 ,NIL ,memo1);
end;

[解决办法]
你这写法不简洁啊,以后要是要加多一个MEMO或者EDIT的时候,你不是又得更改函数的参数,
还有调用的方式,我不赞成什么API的调用方法,DELPHI是面向对象的,应该多利用他面向对象的特性.照我的方法,以后要初始化N个TCustomEdit的子类都可以不用更改函数的参数声明,只要
empty([edit1,edit2......edit n,memo1,memo2.....memo n]);就可以了!

热点排行