我现在成功实现父窗口引用子窗口了,但是,我想通过子窗口修改父窗口Edit.txt的值?

解决方案 »

  1.   

    在Dll中声明一个内部变量:
    uses
        StdCtrls,
    .....var
        myEdit:TEDit;procedure SetEdit(var Edit:TEdit);stdcall;
    begin
        myEdit:=Edit;
    end;procedure ChangeEditText;stdcall;///////////测试用
    begin
        sEdit.Text:='hahaha';
    end;exports
        SetEdit,
        ChangeEditText;
    .....//////////////////////当主程序调用过SetEdit后,把父窗口的Edit传递给Dll的子窗口。
    然后就可以在子窗口里修改,同时父窗口的Edit会改变。调用:
    procedure SetEdit(var Edit:TEdit);stdcall;external 'project1.dll';
    procedure ChangeEditText;stdcall;external 'project1.dll';.....procedure TForm1.Button1Click(Sender: TObject);
    begin
        SetEdit(Edit1);
        ChangeEditText;
    end;
      

  2.   

    打错了。procedure ChangeEditText;stdcall;///////////测试用
    begin
        myEdit.Text:='hahaha';
    end;