主窗口:main 上有 按钮:bitbtnNew 和 一些edit域
新窗口:addnew 上有 按钮:bitbtnOK 和 一些edit域1.点击bitbtnNew按钮,弹出一个新窗口(addnew),在上面填写一条新信息,
2.点击bitbtnOK,将新添加的纪录写到库中,同时我希望将新纪录的内容回写到主窗口的edit域中,
 
我现在就是回写不进去,
我现在应该怎么做????请各位高手帮帮忙?!!!!

解决方案 »

  1.   

    在点击bitbtnOK后把值赋给main.Edit.Text不行么?注意在addnew窗体引用主窗体main的单元
      

  2.   

    另外注意相互引用的时候,不要都写在interface里。
      

  3.   

    那可否用更好的方法
    将新窗口里的EDITS。TEXT装入数组,
    然后再赋给主窗体,这样的话就能实现万变不离其中的效果
    各位对我的建议感觉如何
      

  4.   

    form1中
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Form2.ShowModal;
    end;
    form2中
    procedure TForm2.Button1Click(Sender: TObject);
    begin
      Form1.Edit1.Text := Self.Edit1.Text;
    end;同时form1引用form2, form2引用form1, 但两者的引用不要同时都写在interface里,否则会报错
      

  5.   

    上面的引用,我有问题
    如果是多个EDIT,而且当没有存入库中,还要在
    MIAN 中显示吗,
    我觉得应该在存库语句当中用IF语句
    如果存库成功,则赋值,未存库成功,则不赋值
    各位请对我的意见作出回复
      

  6.   

    楼上的兄弟蛮有意思的:)
    你说的方法当然是可行的,楼上的有人说直接引用,这样完全违背了面向对象编程的方法,一旦addnew窗体、发生变化,那么就波及其他单元的代码,这在项目中是件很可怕的事情,好的做法,是由addnew单元提供统一接口,其他单元只调用这个接口就行了,这样当addnew发生变化,维护的就只是这个单位了,减少了影响。
    对于,数据库开发,我碰到一个高手说过,用面向对象去封装,好处多多,可惜当时功力太浅,尚不是很明白,现在总算有一点感觉了,面向对象确实以少的代码写出高质量的软件。
      

  7.   

    type
      TAddNew = class(TForm)
      ...
      public
        function GetEditMemo:TRcd;  //最早我喜欢用record类型来定义,现在打算换成class,但方法还在摸索中....:(
        procedure SetEditMemo(Rcd: TRcd);
      ...
      end;function TAddNew.GetEditMemo: TRcd;
    begin
      //将每个Edit的内容付值给Rcd记录
    end;procedure TAddNew.SetEditMemo(Rcd: TRcd);
    begin
      //根据Rcd记录来设置Edit的内容
    end;    当然这是最简单的封装,离真正的对象编程还很远,现在俺特别想看看delphi对象持久化技术。
      

  8.   

    不是枚举阿,是record类型;
    type
      TMyRcd = record
        FieldA: string;
        FieldB: Integer;
        FieldC: Boolean;
      end;最早的习惯,现在打算放弃这个习惯了。
      

  9.   

    :)
    这个问题是循环引用,Borland,应该是Delphi不提倡这种做法的,一种折衷的办法是应用公用单元或是接口进行引用
    用循环引用也可以的,可是你要小心,不要把两个单元引用都放在了Interface(声明)或是implementation(实现)处,而是应该把他们分开引用,你看一下
    Unit Unit1;Interfaceuses
      Windows,...,Unit2;
    ....
    end
    Unit Unit2;Interface
    uses
      ...;implementation
    uses
      Unit1;
    ....
    end;
    调用就和平常的调用是一样的:)
    以后不要再叫自己是小妹哦,不然人家会说你的
      

  10.   

    为什么MM来问问题就这么多GG来回帖啊,各位真的和我一样啊,都是  “好色之徒”!
      

  11.   

    不好意思,不需要用到windows消息楼上好多狼啊
    用他们的方法就行了
      

  12.   

    Form1.XX就可以了
    这么多搞。唉
      

  13.   

    呵呵 被调窗口是不是Showmodal出来的?
    被调窗口不返回时是不能与主调窗体通信的
    我的经验是Create之后showmodal之前 或者是showmodal之后Free之前都是允许的
      

  14.   

    首先定义一个记录,将它放在公共引用单元中。
    type
      TMyRcd = record
        FieldA: string;
        FieldB: Integer;
        FieldC: Boolean;
      end;然后在第一个窗体中写
    function MyRcdToedit(AMyRcd:TMyRcd):Boolean;
    beginend;
    在新弹出的录入窗体中添加属性
    published
      Property MyRcd:TMyRcd Read GetMyRcd Write SetMyRcd;//(如果是修改时就用到了).定义一个专门用来操作数据库的类,写在公共引用单元中。
    TForm1,TForm2两个对象只用来显示数据。