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

RitchEdit

答題得分者是:RaynorPao
seeing
初階會員


發表:49
回覆:131
積分:41
註冊:2002-11-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-10 20:27:36 IP:218.187.xxx.xxx 未訂閱
我想問一下各位高手: 我要用迴圈丟一萬多個字到RitchEdit內,(而這一萬多個字都是由十個字組成的,即:用迴圈把這十個字重複丟到RitchEdit內,直到RitchEdit內約有一萬多個字為止),而且這十個字又都各有自己的顏色,請問我該怎麼做才能使程式快速完成?
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-10 20:44:18 IP:210.85.xxx.xxx 未訂閱
把十萬個字一次塞到richedit裡 然後再去改變顏色比較快! 因為User能看到的部份, 也只是十萬個字的其中一塊! 所以先把user看得到的部份先作, 其他的再偷偷的完成
seeing
初階會員


發表:49
回覆:131
積分:41
註冊:2002-11-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-10 21:33:26 IP:218.187.xxx.xxx 未訂閱
sorry~~這個辦法行不通~~ 因為一定要一次把文字跟顏色丟進去,而且最後出來的結果是整體性的,也就是說使用者並非只看到一萬多個字內的一小部分,所以才必須一起丟進去
RaynorPao
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-10 22:20:41 IP:61.221.xxx.xxx 未訂閱
引言: sorry~~這個辦法行不通~~ 因為一定要一次把文字跟顏色丟進去,而且最後出來的結果是整體性的,也就是說使用者並非只看到一萬多個字內的一小部分,所以才必須一起丟進去
seeing 你好: 以下是我的方法,給你做參考
(1)create 兩個 TRichEdit,一個真正用來顯示,一個在背後處理資料
(2)等到在背後處理資料的 TRichEdit 把資料處理好了後,再經由
   Clipboard 貼到真正用來顯示的 TRichEdit
(3)以下是大概的 sample code    #define MAX_TEXT 10
#define MAX_COUNT 10000
char szTemp[MAX_TEXT]=
   {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};
TColor clTemp[MAX_TEXT]={clBlack, clBlue, clGray, clGreen, clLime,
   clNavy, clPurple, clRed, clTeal, clYellow};
char szBuf[MAX_COUNT 1]={0};
int i=0;
int j=0;
int iRand=0;
TRichEdit *retTemp=NULL;    // 這一段先利用亂數來產生字串
srand(...);
for(i=0; iParent=this;
retTemp->Hide();
retTemp->Lines->Add((AnsiString)szBuf);    // 把「在背後處理資料」的 TRichEdit 的內容一個一個字元讀回(設定顏色)
for(i=0; iSelStart=i;
   retTemp->SelLength=1;
   j=0;
   while(retTemp->SelText!=(AnsiString)szTemp[j])
   {
      j  ;
   }
   retTemp->SelAttributes->Color=clTemp[j];
}    // 把整篇處理好的內容貼到「真正用來顯示」的 TRichEdit
retTemp->SelectAll();
retTemp->CopyToClipboard();
RichEdit1->PasteFromClipboard();
delete retTemp;
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
seeing
初階會員


發表:49
回覆:131
積分:41
註冊:2002-11-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-11 16:23:40 IP:218.187.xxx.xxx 未訂閱
seeing 你好: 以下是我的方法,給你做參考
(1)create 兩個 TRichEdit,一個真正用來顯示,一個在背後處理資料
(2)等到在背後處理資料的 TRichEdit 把資料處理好了後,再經由
   Clipboard 貼到真正用來顯示的 TRichEdit
(3)以下是大概的 sample code    #define MAX_TEXT 10
#define MAX_COUNT 10000
char szTemp[MAX_TEXT]=
   {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};
TColor clTemp[MAX_TEXT]={clBlack, clBlue, clGray, clGreen, clLime,
   clNavy, clPurple, clRed, clTeal, clYellow};
char szBuf[MAX_COUNT 1]={0};
int i=0;
int j=0;
int iRand=0;
TRichEdit *retTemp=NULL;    // 這一段先利用亂數來產生字串
srand(...);
for(i=0; iParent=this;
retTemp->Hide();
retTemp->Lines->Add((AnsiString)szBuf);    // 把「在背後處理資料」的 TRichEdit 的內容一個一個字元讀回(設定顏色)
for(i=0; iSelStart=i;
   retTemp->SelLength=1;
   j=0;
   while(retTemp->SelText!=(AnsiString)szTemp[j])
   {
      j  ;
   }
   retTemp->SelAttributes->Color=clTemp[j];
}    // 把整篇處理好的內容貼到「真正用來顯示」的 TRichEdit
retTemp->SelectAll();
retTemp->CopyToClipboard();
RichEdit1->PasteFromClipboard();
delete retTemp;
-- Enjoy Researching & Developing -- [/quote] 我試了一下,光跑出來也需要個3、4分鐘,不知道有沒有其他更快的方法呢?< > 不過還是謝謝你~~< >
RaynorPao
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-11 16:39:35 IP:203.73.xxx.xxx 未訂閱
引言: 我試了一下,光跑出來也需要個3、4分鐘,不知道有沒有其他更快的方法呢?< > 不過還是謝謝你~~< >
嗯??< > 要這麼久喔< > 我用 A~J 來測試~~大概 10 秒之內就可以完成 看來你的資料會很複雜吧?? 有沒有可能把你的資料拆成很多塊 分別用不同的 thread 來完成 這樣會不會比較快呢?? --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
seeing
初階會員


發表:49
回覆:131
積分:41
註冊:2002-11-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-11-11 18:05:46 IP:218.187.xxx.xxx 未訂閱
嗯??< > 要這麼久喔< > 我用 A~J 來測試~~大概 10 秒之內就可以完成 看來你的資料會很複雜吧?? 有沒有可能把你的資料拆成很多塊 分別用不同的 thread 來完成 這樣會不會比較快呢?? -- > 底下是我的程式碼(因為有>>>>>>>>>>>>
RaynorPao
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-11-11 20:46:12 IP:61.221.xxx.xxx 未訂閱
引言: 嗯...我說的3、4分鐘是指我照著大哥你的範例直接先下去run一次,結果要3、4分鐘,而你說你的只要10秒內,為什麼會差這麼多啊? < face="Verdana, Arial, Helvetica"> 嗯~~沒錯啊 我也試過你的 > 備註: 我是在 > 不然~~到別人的電腦上試試吧< > --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
seeing
初階會員


發表:49
回覆:131
積分:41
註冊:2002-11-07

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-11-11 20:54:47 IP:218.187.xxx.xxx 未訂閱
引言: 嗯~~沒錯啊 我也試過你的 > 備註: 我是在 > 不然~~到別人的電腦上試試吧< > -- >< face="Verdana, Arial, Helvetica"> 我是在一個新的project裡面試的,既然這樣,那大概就是我的電腦比較慢了,只有 > 我之前弄的程式,跑一次下來要一個鐘頭,實在是等到吐血,所以才想要看有沒有更快速的方法
RaynorPao
版主


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-11-11 20:59:47 IP:61.221.xxx.xxx 未訂閱
引言: 我是在一個新的project裡面試的,既然這樣,那大概就是我的電腦比較慢了,只有 > 我之前弄的程式,跑一次下來要一個鐘頭,實在是等到吐血,所以才想要看有沒有更快速的方法 < face="Verdana, Arial, Helvetica"> oh~~原來是醬子啊 那也算不錯啦~~原來在你的電腦跑 要花 > 現在好一點的 > 不然~~先把你的 > --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
seeing
初階會員


發表:49
回覆:131
積分:41
註冊:2002-11-07

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-11-12 23:21:53 IP:218.187.xxx.xxx 未訂閱
引言: oh~~原來是醬子啊 那也算不錯啦~~原來在你的電腦跑 要花 > 現在好一點的 > 不然~~先把你的 > -- >< face="Verdana, Arial, Helvetica"> 嗯...換一台?別開玩笑了吧,我還只是個學生,沒什麼錢再買一台,這一台還是貸款的呢~~< > 無論如何還是謝謝你,我會再繼續試試看的,有問題我會再發表的~~< > 對了,順便問一下,我的問題是不是有丟錯討論區啊,是不是應該要post在「C 程式語言討論區(BCB)」?這個好像是在討論元件的地方,
RaynorPao
版主


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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-11-12 23:54:22 IP:61.221.xxx.xxx 未訂閱
引言: 無論如何還是謝謝你,我會再繼續試試看的,有問題我會再發表的~~ 對了,順便問一下,我的問題是不是有丟錯討論區啊,是不是應該要>< face="Verdana, Arial, Helvetica">
(1)隨時歡迎你再來做技術交流
(2)你的問題~~應該是沒有放錯地方吧??< >
   因為負責這個討論區的  >
   只要不是很離譜就可以了< >
    -- Enjoy Researching & Developing --
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-04-26 19:28:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!