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

關於 HDC 的問題 ( About Form )

尚未結案
CuteBabyBoy
初階會員


發表:18
回覆:97
積分:48
註冊:2003-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-24 10:21:04 IP:218.167.xxx.xxx 未訂閱
Dear 各位朋友 目前我遇到一個問題,希望知道如何解的人能幫忙一下 我的目的 : 在 Form 上畫出我指定的影像 (例 BMP or JPG ) 我知道利用 Form1->OnPaint 來處發 (如下) void __fastcall TForm1::FormPaint(TObject *Sender) { Canvas->Draw(0, 0, MyBitmap); } 但 BCB 似乎是 Form 先表像,之後在畫上去 所以看的出來,一開始秀出底色,之後再由上到下 RePaint 出我的圖形 雖然在 XP Home or Professional 反應比較快 但在 XP Embedded 上就看的很明顯....>< 我試過 BMP , JPG , Image ,似乎改善不大.... 有時系統資源不足時還會拖到 2 ~ 3 秒 我的同事用 VB 的做法 因為 VB 的 Form 上有 Picture 的屬性 在 Init 前就先 Load Image 所以在還沒表像前...Form 的樣子就已經是圖的樣子 所以看不出來有Paint的動作 而 BCB 似乎沒辦法在 Form Show 前決定 Form 的樣子 希望了解的人能指點一下.... 發表人 - taishyang 於 2003/10/24 12:11:51
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-24 10:29:33 IP:203.73.xxx.xxx 未訂閱
引言: Dear 各位朋友 目前我遇到一個問題,希望知道如何解的人能幫忙一下 我的目的 : 在 Form 上畫出我指定的影像 (例 BMP or JPG ) 我知道利用 Form1->OnPaint 來處發 (如下) void __fastcall TForm1::FormPaint(TObject *Sender) { Canvas->Draw(0, 0, MyBitmap); } 但 BCB 似乎是 Form 先表像,之後在畫上去 所以看的出來,一開始秀出底色,之後再由上到下 RePaint 出我的圖形 雖然在 XP Home or Professional 反應比較快 但在 XP Embedded 上就看的很明顯....>< 我試過 BMP , JPG , Image ,似乎改善不大.... 有時系統資源不足時還會拖到 2 ~ 3 秒 我的同事用 VB 的做法 因為 VB 的 Form 上有 Picture 的屬性 在 Init 前就先 Load Image 所以在還沒表像前...Form 的樣子就已經是圖的樣子 所以看不出來有Paint的動作 而 BCB 似乎沒辦法在 Form Show 前決定 Form 的樣子 希望了解的人能指點一下....
CuteBabyBoy 你好: 先試試看把 Form 的 DoubleBuffered 設為 true >
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
CuteBabyBoy
初階會員


發表:18
回覆:97
積分:48
註冊:2003-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-24 11:33:50 IP:218.167.xxx.xxx 未訂閱
Dear RaynorPao 的確,您的方式的確讓 Form->Paint 的速度變快 ( 是個不錯的方式 ) Form1->DoubleBuffered=true; 已經看不到 Form 畫的過程 ( 謝謝您的指導 ) 但現在演生一個問題 如果 Form 上加了一個 Edit 則先秀出 Edit 之後再秀 Form 有什麼方式能更完整的秀出...... 當一切 Object 都 Ready 後再顯像 ? 我現在正在 Try 當然 如果能在 Application->Run(); 前就先 Ready 就更好 Anyway 希望能有更好的解..... 當然還是很謝謝 RaynorPao !!!

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-24 11:57:22 IP:163.23.xxx.xxx 未訂閱
CuteBabyBoy 您好: 也許可以加個 sleep(1000) ; // 程式延遲一秒 大概就能滿足您的要求 希望沒誤會您的意思
CuteBabyBoy
初階會員


發表:18
回覆:97
積分:48
註冊:2003-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-27 10:00:16 IP:218.167.xxx.xxx 未訂閱
Dear RaynorPao 謝謝您的指導 Form1->DoubleBuffered=true; 雖然不是正解...但也改善很多 所以我把得分給你 流...也很謝謝您的關心
系統時間:2024-05-17 18:08:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!