在unit1中
uses unit2
button1.click
form2.show

解决方案 »

  1.   

    please show me your code
      

  2.   

    unit yf;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Menus,ExtCtrls, jpeg, StdCtrls, Buttons,input;type
      TMainform = class(TForm)
        Image1: TImage;
        BitBtn1: TBitBtn;
        procedure Exit1Click(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Mainform: TMainform;implementation{$R *.DFM}procedure TMainform.Exit1Click(Sender: TObject);
    begin
     close;
    end;procedure TMainform.BitBtn1Click(Sender: TObject);
    begin
     form1.showmodal;
    end;end.******************************************************************
    unit form1
    interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons, Db, ADODB, DBTables, ComCtrls, Mask, DBCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        ...................
        Edit11: TEdit;
        GroupBox4: TGroupBox;
        RadioButton3: TRadioButton;
        RadioButton4: TRadioButton;
        Table2: TTable;
        DataSource2: TDataSource;
        Button2: TButton;
        procedure BitBtn1Click(Sender: TObject);
        procedure RadioButton1Click(Sender: TObject);
        procedure RadioButton2Click(Sender: TObject);
        procedure RadioButton3Click(Sender: TObject);
        procedure RadioButton4Click(Sender: TObject);
           { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
     close;
    end;procedure TForm1.RadioButton1Click(Sender: TObject);
    begin
     dbedit2.datafield:='FCL20';
    end;procedure TForm1.RadioButton2Click(Sender: TObject);
    begin
    dbedit2.datafield:='FCL40';
    end;procedure TForm1.RadioButton3Click(Sender: TObject);
    var ttime:string[8];
        llistno:string[9];
        count:integer;
     begin
      ttime:=timetostr(time);
      count:=table2.RecordCount;
        if count=0 then llistno:='001'
         else begin
                llistno:=table2.fieldbyname('listno').asstring;
                count:=strtoint(llistno[7]+llistno[8]+llistno[9])+1;
                if count<10 then llistno:='00'+inttostr(count)
                    else if count<100 then llistno:='0'+inttostr(count);
               end;
       edit1.text:='01-'+ttime[1]+ttime[2]+'-'+llistno;
      radiobutton3.enabled:=false;
      radiobutton4.enabled:=false;
    end;procedure TForm1.RadioButton4Click(Sender: TObject);
    var listno:string;
    begin
      if table2.recordcount>0 then
           begin
             listno:=table2.fieldbyname('listno').asstring;
             edit1.text:=listno;
             //dblookupcombobox1.text:=table2.fieldbyname('destination').asstring;
           end
      else
       MessageDlg('数据库内没有记录!', mtWarning,[mbOk], 0);
     radiobutton4.enabled:=false;
     radiobutton3.enabled:=false;
    end;end.
    原来没有问题的 ,但我改了一下project-)option里的application,后来又改回去了,带就有了问题。WHY?????
      

  3.   

    你的yp单元中没有引用form1单元
      

  4.   

    上面说的是对的,form1变量没有引入到unit yp中.
    另外奉送一句,你最好不要在unit form1单元中声明一个同名的form1变量.
      

  5.   

    楼上的, 你没搞错吧? 你是说“var
      Form1: TForm1;”这句是在unit form1单元中声明一个同名的form1变量?????你会Delphi吗??那个变量就是Form1本身哪
      

  6.   

    正确答案是:    在使用form1.showmodal;之前必须保证Form1已经被创建了,而且它必须是InVisible的(visible属性必须为false),
    否则就会报你碰到的那个错!————————"  can't make a visible window modual!"  
      

  7.   

    thank you!!i will try it!!!
    if it is right,i will give you the scores.
      

  8.   

    form2的Visible的属性应该是Flase.
      

  9.   

    你在options中可能是将form2放到available forms 中了,如果是这样,将它放到
    auto-Create forms中
      

  10.   

    我刚碰到这个问题,
    form2的Visible的属性应该是Flase,而你把它设为true