delphi6中:
1、在project---> options--->Forms 中:列出了我的所有frm 都列在auto-create forms 中。我在程序中的主窗口(main form)是这样呼出其他窗口的:
subform:=tsubform.create(nil);
subform.showmodual; 这样一来是不是就得把我要呼出的窗口都放进available form中呢?
2、db控件可以做录入,那么可以做修改吗?那么dataset.refresh;做了些什么事情呢?他不就是刷新数据集的吗? 可我的程序中做完录入后数据集还是没有更成新的。
with adoquery1 do
begin
open;
append;
fieldbyname('name').value:=edtname.text;
......
post;
adoquery1.refresh;
end;
按这样连接:dbgrid-->datasource-->adoquery1
我不清楚,刷新完了后是不是得用下面的这两句:
dataset.close; 然后dataset.open; 
这两句不也同样实现了数据集的刷新了吗?估计在速度上有些不同吧!3、已经录入的数据现在显示在DBGrid中。我想问怎样才能使刚提交的数据立刻就显示在用于显示数据的grid中呢?

解决方案 »

  1.   

    >>subform:=tsubform.create(nil);
    >>subform.showmodual; 这样一来是不是就得把我要呼出的窗口都放进available form中呢?
    創建多了一個同樣的Form, 不過大多情況問題不大
      

  2.   

    aiirii(ari-爱的眼睛)你在线吗?
    我还是不大明白!!!
      

  3.   

    第三个问题,我给段代码给你看,应该很好理解的。
    tblLeg是一个TAdoTable对象procedure TfrmManageLeg.u_pro_SetCheckBox();
    var
      iSelectID: Integer; //Ñ¡ÖмǼµÄfID
      strFileName: string; //ÒªÆôÓõķûºÅÎļþ
      strPicType: string; //ͼƬÀàÐÍ
    begin
      strPicType := tblLeg.FieldByName('ͼƬÀàÐÍ').AsString;
      if strPicType <> '&Ouml;÷&Iacute;&frac14;&Agrave;&yacute;&Icirc;&Auml;&frac14;&thorn;' then
      begin
        iSelectID := tblLeg.FieldByName('±à&ordm;&Aring;').AsInteger;
        strFileName := tblLeg.FieldByName('&Icirc;&Auml;&frac14;&thorn;&Atilde;&ucirc;').AsString;
        u_iSelectID := iSelectID;
        tblLeg.DisableControls;    tblLeg.Locate('&Ecirc;&Ccedil;·&ntilde;&frac14;¤&raquo;&icirc;', true, []);
        tblLeg.Edit;
        tblLeg.FieldByName('&Ecirc;&Ccedil;·&ntilde;&frac14;¤&raquo;&icirc;').AsBoolean := false; //&Egrave;&laquo;&para;&frac14;&Eacute;è&Icirc;&ordf;&sup2;&raquo;&AElig;&ocirc;&Oacute;&Atilde;
        tblLeg.Post;    tblLeg.Locate('±à&ordm;&Aring;', iSelectID, []);
        tblLeg.Edit;
        tblLeg.FieldByName('&Ecirc;&Ccedil;·&ntilde;&frac14;¤&raquo;&icirc;').AsBoolean := true; //&Eacute;è&Ouml;&Atilde;&Ntilde;&iexcl;&Ouml;&ETH;&micro;&Auml;&AElig;&ocirc;&Oacute;&Atilde;
        tblLeg.Post;    tblLeg.EnableControls;
        frmMain.StatusBar1.Panels[1].Text := '&AElig;&ocirc;&Oacute;&Atilde;&micro;&Auml;·&ucirc;&ordm;&Aring;&Icirc;&Auml;&frac14;&thorn;&Ecirc;&Ccedil;&pound;&ordm;' + strFileName;
        frmMain.StatusBar1.Refresh;
      end
      else
      begin
        Application.MessageBox('&Ouml;÷&Iacute;&frac14;&Agrave;&yacute;&Icirc;&Auml;&frac14;&thorn;&sup2;&raquo;&Ecirc;&Ccedil;·&ucirc;&ordm;&Aring;&Icirc;&Auml;&frac14;&thorn;&pound;&not;&sup2;&raquo;&Auml;&Uuml;±&raquo;&AElig;&ocirc;&Oacute;&Atilde;!',
          '&Igrave;á&Ecirc;&frac34;', MB_OK + MB_ICONINFORMATION
          );
        tblLeg.DisableControls;
        tblLeg.Locate('±à&ordm;&Aring;', u_iSelectID, []);
        tblLeg.Edit;
        tblLeg.FieldByName('&Ecirc;&Ccedil;·&ntilde;&frac14;¤&raquo;&icirc;').AsBoolean := true; //&Eacute;è&Ouml;&Atilde;&Ntilde;&iexcl;&Ouml;&ETH;&micro;&Auml;&AElig;&ocirc;&Oacute;&Atilde;
        tblLeg.Post;
        tblLeg.EnableControls;
      end;
    end;
      

  4.   

    db修改的方法:adoquery1.edit,这样就可以改了,一定要post呀