線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1963
推到 Plurk!
推到 Facebook!

如何隱藏form

答題得分者是:ccchen
kenji
一般會員


發表:32
回覆:44
積分:20
註冊:2002-08-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-20 16:39:47 IP:61.225.xxx.xxx 未訂閱
不知是我做錯還是怎樣,我的form都不能隱藏,真讓我傷腦經,我把我的問題提出來,麻煩各位高手幫我解答一下吧! 我在 TForm1.FormCreate 要做DataModule1.ADOTable1.First....不行 所以我把DataModule1.ADOTable1.First;移到TForm1.FormShow去做 ..可以了。 可是first之後,我要判斷DataModule1.ADOTable1['echelon_no'],是否為空,如果為空我就要show form2 且把form1給隱藏起來,問題來了.....form2 show 的出來,就是form1隱藏不起來。 以下是TForm1.FormShow的程式碼:麻煩各位高手幫忙抓蟲....... procedure TForm1.FormShow(Sender: TObject); begin //判斷是否第一次登入此系統 DataModule1.ADOTable1.First; if DataModule1.ADOTable1['echelon_no']<>'' then //非第一次登入 begin GroupBox1.Caption:=DataModule1.ADOTable1['echelon_no']; end else //第一次登入 begin showmessage('第一次登入,請先輸入梯次編號'); form2.Show; //也用過Visible了,也是不行 form1.Hide; end; end;
天外來客
初階會員


發表:22
回覆:199
積分:44
註冊:2001-11-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-20 17:15:47 IP:61.219.xxx.xxx 未訂閱
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } ExecProc : Boolean; end; var Form1: TForm1; implementation uses Unit2; {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin ExecProc := False; end; procedure TForm1.FormPaint(Sender: TObject); begin if (NOT ExecProc) then begin Form1.Visible := False; Form2.ShowModal; Form1.Visible := True; ExecProc := True; end; end;
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-20 20:01:28 IP:203.217.xxx.xxx 未訂閱
[quote] 我在 TForm1.FormCreate 要做DataModule1.ADOTable1.First....不行 由選單project|view Source看一下你的主程式,是否先create form1才create DataModule, 如此, form1 create 時, datamodule還未create當然不可 改成
  Application.CreateForm(TDataModule1, DataModule1);
  Application.CreateForm(TForm1, Form1);
就可在form1 create時用datamodule了
procedure TForm1.FormShow(Sender: TObject);
begin
...

   form2.Show;  //也用過Visible了,也是不行
//同樣, form2是否已create了       form1.Hide;
end;    建議, form2不要autocreate, 在form1之formcreate
[code]
  DataModule1.ADOTable1.First;
  if DataModule1.ADOTable1['echelon_no']<>'' then //非第一次登入
  begin  
    GroupBox1.Caption:=DataModule1.ADOTable1['echelon_no'];
  end
  else //第一次登入
  begin
    showmessage('第一次登入,請先輸入梯次編號');
    form2:=Tform2.ceate(self);
    if not form2.showmodal then //若不成功
      form1.close;              //結束程式
  end;
end 
kenji
一般會員


發表:32
回覆:44
積分:20
註冊:2002-08-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-08-20 21:17:56 IP:61.217.xxx.xxx 未訂閱
謝啦~~~我已經可以了~~~所有的錯誤都被你說中了~~~~ 嗚......初學者就是初學者,高手就是高手 謝啦~~~
系統時間:2024-05-15 23:08:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!