例子一个在上grdacreate的unit中
 ...............
 public
    class function CreateGrda(Sfzh: string): string;
    { Public declarations }
  end;var
  frmGrdaCreate: TfrmGrdaCreate;implementationuses main, support;{$R *.dfm}class function TfrmGrdaCreate.CreateGrda(Sfzh: string): string;
begin
  with Create(nil) do
  try
    wwdbedtSfzh.Text := Sfzh;
    updatesfzh(wwdbedtSfzh.Text);    adoqGrda.Close;
    adoqGrda.Open;    showmodal;
  finally
    adoqGrda.Close;
    result := restr;
    free;
  end;
end;................
调用时 uses grdacreate;procedure TfrmCbcl.NewGrda();
var
  str: string;
begin
  str := TfrmgrdaCreate.CreateGrda(wwdbedtSfzh.Text);
........
end;

解决方案 »

  1.   

    或者用wm_copydata消息
    发送方:
    varForm1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);vards: TCopyDataStruct;hd: THandle;beginds.cbData := Length (Edit1.Text) + 1;GetMem (ds.lpData, ds.cbData ); //为传递的数据区分配内存StrCopy (ds.lpData, PChar (Edit1.Text));Hd := FindWindow (nil, 'Form2'); // 获得接受窗口的句柄if Hd <> 0 thenSendMessage (Hd, WM_COPYDATA, Handle,Cardinal(@ds)) // 发送WM_COPYDATA消息elseShowMessage ('目标窗口没找到!');FreeMem (ds.lpData); //释放资源end;接受方:TForm2 = class(TForm)Edit1: TEdit;private{ Private declarations }publicprocedure Mymessage(var t:TWmCopyData);message WM_COPYDATA;{ Public declarations }end;varForm2: TForm2;implementationprocedure TForm2.Mymessage(var t:TWmCopyData);beginEdit1.text:=StrPas(t.CopyDataStruct^.lpData);//接受数据并显示。end;