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

怎麼讓TMemo可以有不同的顏色?

尚未結案
lcsboy
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-19 05:37:09 IP:210.85.xxx.xxx 未訂閱
請問高手: 有誰知道怎麼讓字型可以同時秀不同顏色在一個TMemo裡呢? 網路上好多都是要賣元件, 難道這個技巧不能公開嗎?
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-19 10:05:08 IP:202.145.xxx.xxx 未訂閱
引言: 請問高手: 有誰知道怎麼讓字型可以同時秀不同顏色在一個TMemo裡呢? 網路上好多都是要賣元件, 難道這個技巧不能公開嗎?
依我所知TMEMO元件好像做不到你所要的效果~ 你可以用TRICHEDIT就可以做到同時秀不同顏色了~
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
lcsboy
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-19 10:14:49 IP:211.23.xxx.xxx 未訂閱
是這樣子嗎? 那網路上一堆ColorMemo要怎麼說呢? 只不過是要賣錢, 就算花了錢也拿不到source code /_\
amide
一般會員


發表:4
回覆:13
積分:13
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-08-19 11:13:13 IP:211.22.xxx.xxx 未訂閱
有幾種作法: 1.是用畫的,利用TextOut把文字畫上去,但是控制上會比較麻煩,尤其是用Scroll Bar的時候最有問題. 2.利用TRichEdit中的SelStart , SelLength, SelAttributes 來把要改顏色的字串選起來在設定屬性, 不過雖然可以做到,但是效率很差.... 3.使用RTF格式,這樣效率會好一點...
lcsboy
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-08-19 11:27:00 IP:211.23.xxx.xxx 未訂閱
對於3. 我的疑問是, 為什麼用RTF也比較好? 最後顯示顏色還不是看用TMemo還 是用TRichEdit 對於1. 如果用畫的話, 那不是要另外作不同顏色的紀錄嗎? 如果是這樣子的話, 一般這個部份都要怎麼作呀? 一直想不出來怎麼作
amide
一般會員


發表:4
回覆:13
積分:13
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-08-19 11:47:38 IP:211.22.xxx.xxx 未訂閱
在TRichEdit5中的文件可以存成RTF格式,這裡面就包括了字型和顏色了, 如果你要改變顏色的部份不多,可以用TRichEdit中的SelStart , SelLength, SelAttributes 來做,然後把文件存成RTF格式,下次Load進來時就有你所設定的顏色了.我剛剛說的為什麼會用RTF的用意是因為用SelAttributes 設定自串屬性時會很慢,如果我是一整篇文章要像Delphi那樣把每個不同類型的字串函式或數字都依設定改變字型和顏色時,使用SelAttributes 會很慢很慢,但是我如果是用RTF格式來載入TRichEdit就會很快....時間上的差異是很明顯的,但是如果你要做的不是一篇文章,而是內容中的幾個關鍵字,那用SelAttributes 就可以了,畢竟比較簡單嘛!!
lcsboy
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-08-19 18:30:03 IP:203.65.xxx.xxx 未訂閱
Soga.........原來你說的RTF是這個道理呀... 不過, 好像不知道怎麼在TRichEdit 在讀RTF時, 可以攔截要不要變色的訊息/_\ 如果可以攔截TRichEdit 變色或斷行的話, 那我就不會想用TMemo來變色了 因為上次跟站長驗証了一下, Delphi下的TRichEdit沒有我看到的bug. 而在VC或BCB下的TRichEdit有碰到0x83, 0x58就會自己斷行 (@.@) 而日文碼下確有一堆的0x83, 0x58 如果能讓TRichEdit 碰到0x83, 0x58不會作斷行的動作的話, 那TRichEdit就 沒什麼bug了
amide
一般會員


發表:4
回覆:13
積分:13
註冊:2002-07-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-08-19 22:01:37 IP:211.20.xxx.xxx 未訂閱
在TRichEdit中有一個PlainText屬性,你把它設成True就是RTF的檔案格式了. 你只要用LoadFromFile與SaveToFile就可以了, 至於到底碰到0x83, 0x58會不會自己斷行,我就沒試過了,你可以試看看, RTF可以用Word開....我也不知道Word會不會有此一現象. 不過RTF在TRichEdit中的用法很簡單的.你可以試試看. 當然還有其他方法可以變顏色啦!!
lcsboy
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-08-19 22:57:08 IP:210.85.xxx.xxx 未訂閱
試過了! 用WordPad會, Word卻不會 可能跟RTF的版本有關..... 不信的話, 用UltraEdit自己試試就知了 神奇的bug
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-08-20 16:35:05 IP:192.168.xxx.xxx 未訂閱
我看您只有用這個元件吧 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=12063 TColorMemo不用錢FreeWare但無Source! BCB版下載至http://www.balticsolutions.com/downloads.asp 另外有一個GDMEMO有Source的元件,但無法在Delphi 5.0 Compile 您可參考其中程式有關TMemo.OnPaint中的寫法! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
lcsboy
版主


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-09-02 20:15:57 IP:203.65.xxx.xxx 未訂閱
目前雖無找到正解 但是謝謝副站長-阿子的提供, 使用SynEdit http://synedit.sourceforge.net Source code free, BCB 5.0使用正常 有興趣的人不妨和我一起研究一下... 因為Delphi實在看得很累........>_<
鈴鐺
初階會員


發表:33
回覆:81
積分:35
註冊:2002-03-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-09-04 10:49:27 IP:192.72.xxx.xxx 未訂閱
我的做法: 1. RichEdit 2. 檔案以 plaintext 存入(Save File 前plaintext屬性設為true,存完後改回false) 3. 檔案讀入後由語法檢查程式變更顏色(以select區塊改顏色) 4. 我想要一邊輸入,一邊改變顏色(Call Syntax procedure), 但發生嚴重的畫面閃動現象. http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20855,不過沒人回答 目前程式畫面如下 如圖 < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=6574891&CC=147049"> 發表人 - 鈴鐺 於 2002/09/04 10:57:36
lcsboy
版主


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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-09-04 11:20:07 IP:203.65.xxx.xxx 未訂閱
就是不想用TRichEdit才問TMemo怎麼變色的! Cause: 1. TRichEdit是由TCustomMemo來的. 2. TRichEdit還包了RTF格式 <--- 不想用 3. TRichEdit, 到了BCB 6.0還在使用模擬 Ver.1.0的function 從Win98開始, OS就support RichEdit Ver.2.0格式 到了WinXP 還在用模擬 Ver.1.0的function <--- SDK有寫 除非自己加code去開啟Ver. 3.0的功能 4. BCB & VC TRichEdit遇到0x83, 0x58 會無緣無故自己作斷行 Delphi的不會, 而且SDK明明說了, TRichEdit不再Support 判斷如何斷行的callback function. <-- 莫名奇妙 5. 如果只想純文字處理, TRichEit沒TMemo來的快 6. TMemo在BCB 5.0後, 已經沒有檔案64K的限制 基於以上種種理由! TRichEdit只不過多了變色功能, 其他的... 可能還比TMemo差.....>_<
系統時間:2024-05-20 5:52:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!