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

如何制作过渡界面?

尚未結案
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-20 20:32:11 IP:218.85.xxx.xxx 未訂閱
小弟的主窗体在formcreate里有一堆初始化,还要远程连接服务器的数据库,所以打开exe文件后要一段时间才能看到主窗体。如何在点击exe后先显现一个诸如“正在初始化”提示的过渡窗体,待主窗体可以显现时在将其隐藏或关闭?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-21 00:34:33 IP:203.204.xxx.xxx 未訂閱
ffprince 你好
  在本站其實也有很多文章,一時我也不知要輸入什麼來搜尋,乾脆把以前寫的複製過來比較快。
  在專案檔(*.dpr)中如下方式改寫(紅色部份)    .....
Begin
  Application.Initialize;      FMWaiting:= TFMWaiting.Create(Application); // 程式一開始即自行建立
  FMWaiting.Show ; 
  FMWaiting.Update;      Application.CreateForm(TFM_MAIN, FM_MAIN); // 建立主Form
  FMWaiting.Lable1.Caption := '主Form建立完成';//有必要還可以即時顯示訊息
  Application.CreateForm(TFM_XXXX, FM_XXXX); // 建立其他Form
  ..........
  FMWaiting.Free;// <---- 最後全部建立完成後,將它釋放
  Application.Run; // 開始主程序的執行
End;
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-21 00:34:54 IP:219.129.xxx.xxx 未訂閱
ffprince 你好 参照下面 MainForm is frmMain;//主窗体 SplashForm is frmSplash;//进度条窗体 在.dpr写入 begin Application.Initialize; frmSplash := TfrmSplash.Create(Application); frmSplash.Show; frmSplash.Update; if frmSplash.ModalResult = 1 then begin Application.CreateForm(TfrmMain,frmMain); Application.Run; frmSplash.Hide; frmSplash.Free; end; end; end. procedure TfrmSplash.Timer1OnTimer(...); begin ... Self.ModalResult := 1; end; 试试看 ——行径窄处,留一步与人行—— ===== 为什么,经过多年以后,得失的过程如此冷漠 为什么,经过多年以后,风干的伤口心痛依旧
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-21 09:05:07 IP:218.15.xxx.xxx 未訂閱
改进: 将form16移入Available forms框内 program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; …… …… Unit16 in 'Unit16.pas' {Form16}; {$R *.res} begin form16:=TForm16.Create(application); form16.Show; form16.Update; Application.Initialize; Application.CreateForm(TForm1, Form1); form16.ProgressBar1.Position:=form16.ProgressBar1.Position 1;//你可根据需要设置好form16中的ProgressBar1的max值,如这里是设为15,step为1; ………………………… Application.CreateForm(TForm15, Form15); form16.ProgressBar1.Position:=form16.ProgressBar1.Position 1; form16.Free; Application.Run; end. 则加载完所有form之后,进度窗体自动free,打开主窗体form1;试试看 ——行径窄处,留一步与人行—— ===== 为什么,经过多年以后,得失的过程如此冷漠 为什么,经过多年以后,风干的伤口心痛依旧 發表人 - deity 於 2004/05/21 09:23:34
dengguo
一般會員


發表:41
回覆:49
積分:23
註冊:2004-01-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-21 11:29:05 IP:218.16.xxx.xxx 未訂閱
小弟試了一下 在.DPR中 ---------------------------------------------------- Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin form2 := Tform2.Create(Application); form2.Show; form2.Update; Application.Initialize; Application.CreateForm(Tform1,form1); form2.Hide; form2.Free; Application.Run; end. ------------------------------------------------ 初學delphi,請各位多多提點!謝謝!
系統時間:2024-05-17 20:02:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!