請問關於Form被程式lock問題... |
尚未結案
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
您在 OnCreate event 處理不太洽當,此時 Form 還沒有秀出來,您畫面上的變化是看不到的,您改在 OnActivate 處理或許比較洽當,另外,當您迴圈在跑的時候,UI 沒有機會去回應訊息,應此您應該在迴圈內加上 Application->ProcessMessages(),這樣您的 UI 才會變化。:
void __fastcall TForm1::FormActivate(TObject *Sender) { while(!infile.eof()) { 處理文字檔副程式; i ; Label1->Caption="目前處理資料筆數: " IntToStr(i); Application->ProcessMessages(); } }發表人 - allenchan 於 2004/12/14 22:52:03 |
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
引言: 您在 OnCreate event 處理不太洽當,此時 Form 還沒有秀出來,您畫面上的變化是看不到的,您改在 OnActivate 處理或許比較洽當,另外,當您迴圈在跑的時候,UI 沒有機會去回應訊息,應此您應該在迴圈內加上 Application->ProcessMessages(),這樣您的 UI 才會變化。:感謝大大...終於有出現了... 高手出招...果然不同...^^...感恩...void __fastcall TForm1::FormActivate(TObject *Sender) { while(!infile.eof()) { 處理文字檔副程式; i ; Label1->Caption="目前處理資料筆數: " IntToStr(i); Application->ProcessMessages(); } }發表人 - allenchan 於 2004/12/14 22:52:03 |
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
引言: 另外想請問大大...如果我不知道全部會處理幾筆... 我想放一個CGauge元件... 不知道有沒有辦法去顯示多少百分比... 問題就不知道全部有幾筆...而只知道處理幾筆... 只能把Max設死的筆數...不知有沒有法子來改善... 如果大大知道...麻煩指導一下...謝謝...從你上述的碼我想你應該是自行開檔, 讀出資料後處理, 如果是的話建議你把MAX設為檔案的大小Byte數, 而目前進度百分比就是你讀出的bytes總數, 當讀出的bytes數等於檔案大小時進度不就剛好百分之百, 這樣講不知您了解嗎 |
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
引言: ~~ 不好意思捏,我的意思是您的 >> *>>< face="Verdana, Arial, Helvetica"> sorry...本人程度差....不知道是什麼型別... 底下是我開檔的方式...char buff[81]; ifstream infile; infile.open(StrFilename); String Temp while(!infile.eof() ) { infile.getline(buff,sizeof(buff)); Temp=String(buff); } |
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
引言:引言: 另外想請問大大...如果我不知道全部會處理幾筆... 我想放一個CGauge元件... 不知道有沒有辦法去顯示多少百分比... 問題就不知道全部有幾筆...而只知道處理幾筆... 只能把Max設死的筆數...不知有沒有法子來改善... 如果大大知道...麻煩指導一下...謝謝...從你上述的碼我想你應該是自行開檔, 讀出資料後處理, 如果是的話建議你把MAX設為檔案的大小Byte數, 而目前進度百分比就是你讀出的bytes總數, 當讀出的bytes數等於檔案大小時進度不就剛好百分之百, 這樣講不知您了解嗎 >>< face="Verdana, Arial, Helvetica"> 大大的方式是不錯的方法...好像是目前唯一可解決的方式... 我想來試看看這種方式... 但不知道這個方式要怎麼寫... 還是有資料可以參考... 麻煩大大指導囉...感謝... |
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
看起來您的資料一行就是一筆,先用一個迴圈跑完一次就知道有幾行啦:
int GetLineCount(string StrFileName) { ifstream infile; infile.open(StrFileName.c_str()); int LineCount = 0; char ch; while(infile.get(ch)) { if (ch == '\n') LineCount ; } infile.close(); return LineCount; } /* 以下為您原本的程式碼,多加一個 LineCount */ int LineCount = GetLineCount(StrFilename); char buff[81]; ifstream infile; infile.open(StrFilename); String Temp while(!infile.eof() ) { infile.getline(buff,sizeof(buff)); Temp=String(buff); }LineCount 就是你資料的總筆數。 發表人 - allenchan 於 2004/12/15 00:26:20 |
terencechiu
一般會員 發表:13 回覆:29 積分:8 註冊:2004-12-15 發送簡訊給我 |
我也一直對處理時畫面沒反應很困擾。
也常在想百分比怎麼做。
前面幾位大大的範例,大概已經解決了前面的兩個問題,
謝謝啦。
小弟我放一下讀INI的幾行:
用TIniFile來做。
.cpp
-------------------------------------------
T2EIniFile
= new TIniFile(ExtractFilePath(Application->ExeName) "My.ini");
-------------------------------------------- Terence Chiu
------
Terence Chiu |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |