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

RichEdit元件的問題

尚未結案
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-28 23:33:32 IP:61.59.xxx.xxx 未訂閱
請問各位先進: 如何在 TRichEdit 元件中顯示 Image, 又可以進行文字的編輯? 不吝賜教, 謝謝!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-28 23:43:31 IP:140.135.xxx.xxx 未訂閱
smallfox您好:
引言:如何在 TRichEdit 元件中顯示 Image, 又可以進行文字的編輯?
應該要改寫元件吧...方法可參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=23435 不然可以參考william 大哥寫的WPY_Memo 1.0 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28175 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-30 00:15:34 IP:61.59.xxx.xxx 未訂閱
謝謝 Taishyang 所提供的資料, 可惜因為 TRichEdit 這個元件很特別, 不太像 TMemo 元件, 曾經試過很多方法, 包括了 Canvas 等方式, 倒是可以將 Image draw 上 TRichEdit, 但是一輸入文字時, 卻無法正常顯示出來, 好像圖與文字只能擇一, 想重寫元件但自個兒又不是很懂, 總想應該有其他方法吧?!(例如: WIN API, 可惜我不懂 How to do), 所以, 希望有經驗的大大們幫幫忙, 不勝感激!! (Taishyang, Thanks a lot ~~~~~)
banson1716
高階會員


發表:55
回覆:182
積分:167
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-30 02:35:36 IP:61.223.xxx.xxx 未訂閱
參考看看 ---------------------------------------------------------------------- 為了在TMemo組件表面畫圖,我們應當創造TMemo的子類,並重載它的drawing方法.具體做法如下: type TMyMemo = class(TMemo) protected procedure WMPaint(var Message: TWMPaint); message WM_PAINT; end; 插入到程序的實現部分: procedure TMyMemo.WMPaint(var Message: TWMPaint); var MCanvas: TControlCanvas; DrawBounds : TRect; Begin inherited; MCanvas:=TControlCanvas.Create; DrawBounds := ClientRect; // 生成臨時TRect類型記錄 Try MCanvas.Control:=Self; With MCanvas do Begin Brush.Color := clBtnFace; FrameRect( DrawBounds ); InflateRect( DrawBounds, -1, -1); FrameRect( DrawBounds ); FillRect ( DrawBounds ); MoveTo ( 33, 0 ); Brush.Color := clWhite; LineTo ( 33, ClientHeight ); PaintImages; end; finally MCanvas.Free; End; end; 這個PaintImages過程在Memo的畫布上畫圖像。 procedure TMyMemo.PaintImages; var MCanvas: TControlCanvas; DrawBounds : TRect; i, j : Integer; OriginalRegion : HRGN; ControlDC : HDC; begin MCanvas:=TControlCanvas.Create; DrawBounds := ClientRect; // 生成臨時TRect類型記錄 try MCanvas.Control:=Self; ControlDC := GetDC ( Handle ); MCanvas.Draw(0, 1, Application.Icon); finally MCanvas.Free; end; end; 現在你有了你自己的drawing memo類。
系統時間:2024-05-18 14:47:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!