全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1221
推到 Plurk!
推到 Facebook!

怎樣才能讓一個非主表單最先出現

尚未結案
tianwei
一般會員


發表:2
回覆:1
積分:0
註冊:2005-10-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-13 20:17:20 IP:218.93.xxx.xxx 未訂閱
各位前輩 我做了一個登陸身份判別的表單,需要第一個出現,但有不想設置為主表單,請問有什麼辦法能實現這一功能。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-13 21:46:13 IP:61.71.xxx.xxx 未訂閱
引言: 各位前輩 我做了一個登陸身份判別的表單,需要第一個出現,但有不想設置為主表單,請問有什麼辦法能實現這一功能。
給你一個範本, 請特別注意紅色的部份, 一般這樣的登錄畫面, 一定要等到主form建立完成並在idle(閒置)下才能去呼叫其他視窗, 所以有一個 StartRun的函式來掌控及處理
  private
    { Private declarations }
    procedure StartRun(Sender: Tobject; var Done: boolean);    ....    procedure TForm_Main.StartRun(Sender: Tobject; var Done: boolean);
          var xhandle: longInt;
              rightreturn: string;
              bmpFile: string;
begin
     xhandle:= FindWindow('TForm_Main',nil);
     if xhandle = 0 then exit;
     Application.ProcessMessages;
     Application.OnIdle:= nil;
     Done:= True;
     // 下為使用者登錄視窗的動態建立
     Form_LoginIB:= TForm_LoginIB.Create(self);
     if U_VarDef.loginID='###^^^' then begin
        try
           Form_LoginIB.ShowModal;
        finally
           Form_LoginIB.Free;
        end;
     end;
     if U_VarDef.stopRun then Application.Terminate;
.....
end;    procedure TForm_Main.FormCreate(Sender: TObject);
begin
....
     Application.OnIdle:= StartRun;
end;    
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-13 21:47:14 IP:61.71.xxx.xxx 未訂閱
引言:
引言: 各位前輩 我做了一個登陸身份判別的表單,需要第一個出現,但有不想設置為主表單,請問有什麼辦法能實現這一功能。
給你一個範本, 請特別注意紅色的部份, 一般這樣的登錄畫面, 一定要等到主form建立完成並在idle(閒置)下才能去呼叫其他視窗, 所以有一個 StartRun的函式來掌控及處理, 以下程式請寫在主form上
  private
    { Private declarations }
    procedure StartRun(Sender: Tobject; var Done: boolean);    ....    procedure TForm_Main.StartRun(Sender: Tobject; var Done: boolean);
          var xhandle: longInt;
              rightreturn: string;
              bmpFile: string;
begin
     xhandle:= FindWindow('TForm_Main',nil);
     if xhandle = 0 then exit;
     Application.ProcessMessages;
     Application.OnIdle:= nil;
     Done:= True;
     // 下為使用者登錄視窗的動態建立
     Form_LoginIB:= TForm_LoginIB.Create(self);
     if U_VarDef.loginID='###^^^' then begin
        try
           Form_LoginIB.ShowModal;
        finally
           Form_LoginIB.Free;
        end;
     end;
     if U_VarDef.stopRun then Application.Terminate;
.....
end;    procedure TForm_Main.FormCreate(Sender: TObject);
begin
....
     Application.OnIdle:= StartRun;
end;    
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-13 21:48:13 IP:61.229.xxx.xxx 未訂閱
在Delphi裡的View->View Source裡   Application.Initialize;後面加一行   Application.ShowMainForm := False;    或在登入的Form的onShowd加Application.MainForm.Visible := False; 也可以。    ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
系統時間:2024-05-19 17:45:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!