主窗口中有一个DBGRID,一个按钮button1,现在我想实现当选中DBGRID一行时,单击button1可在另一窗口中显示改行详细信息并可修改写回数据库,请问大家该如何实现,谢谢?

解决方案 »

  1.   

    如果用DBEdit,则只要连接主窗体的DataSource就可以了啊,或者在新的窗体重新传入参数进行新的查询
      

  2.   

    用dbedit很方便的,修改的话在事件处理中加上下面这句:
    dataset.post();
    就搞定了~~
      

  3.   

    你可以试一下 dbedit 啊
    只要将datefields  的属性设置成相应的表中的记录就行了,然后直接连接到BUTTON上的事件中去,应该就会自己显示了。
    不过要是想灵活一点的话,还是试用一下EDIT  吧
      

  4.   

    顶 seekmydoom(靠灌水混日子)
      

  5.   


    设新的Form  为 Form1 原来的 Form 为 form2Form1.edit1.text:=Qt1.Fileds[0].asstring;在Form1 的确定按钮事件里写
    form2.qt1.edit
    Form2.qt1.Fileds[0].asstring:=edit1.text;
    form2.qt1.post
    先要USES 一下
      

  6.   

    ADOConnection1链接到sql的pubs数据库,ADOTable1.Connection := ADOConnection1,ADOTable1.TableName:=publishers,DataSource1.DataSet:=ADOTable1
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, StdCtrls, ADODB, Grids, DBGrids;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        ADOTable1: TADOTable;
        Button1: TButton;
        Memo1: TMemo;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
       
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
    uses unit2;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
       ADOTable1.Edit ;
       form2.DBEdit1.DataField := DBGrid1.Columns.Items[0].FieldName ;
       form2.DBEdit2.DataField := DBGrid1.Columns.Items[1].FieldName ;
       form2.DBEdit3.DataField := DBGrid1.Columns.Items[2].FieldName ;
       form2.DBEdit4.DataField := DBGrid1.Columns.Items[3].FieldName ;
       form2.DBEdit5.DataField := DBGrid1.Columns.Items[4].FieldName ;
       if form2.ShowModal=mrOK then
          ADOTable1.Post
       else
          ADOTable1.Cancel ;
    end;end.DBEdit1.DataSource := form1.datasource1
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Mask, DBCtrls;type
      TForm2 = class(TForm)
        DBEdit1: TDBEdit;
        DBEdit2: TDBEdit;
        DBEdit3: TDBEdit;
        DBEdit4: TDBEdit;
        DBEdit5: TDBEdit;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    begin
       ModalResult := mrOK ;
    end;end.我做了可以