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

如何在QRLabel所顯示的文字當中將某幾個字變為紅色?

答題得分者是:hagar
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-13 23:13:20 IP:59.114.xxx.xxx 訂閱
各位delphi前輩:
不管是QRLabel、QRMemo或QRRichText…還是其他元件,能否在顯示的文字當中將某幾個字變為紅色?
例:【繳回的金額為-100元】,將【】中的文字顯示在QRLabel、QRMemo或QRRichText…

ps:只能使用一個元件…因為【】中的文字是動態產生的,所以無法將【】中的文字放在不同的元件中

敬請指教,感繳不盡…
------
~小弟淺見,參考看看~
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-14 08:15:35 IP:203.70.xxx.xxx 訂閱
'【繳回的金額為' ' -100' '元】'

請拆成三段,再組合起起,試試囉


===================引 用 channel 文 章===================
各位delphi前輩:
不管是QRLabel、QRMemo或QRRichText…還是其他元件,能否在顯示的文字當中將某幾個字變為紅色?
例:【繳回的金額為-100元】,將【】中的文字顯示在QRLabel、QRMemo或QRRichText…

ps:只能使用一個元件…因為【】中的文字是動態產生的,所以無法將【】中的文字放在不同的元件中

敬請指教,感繳不盡…


channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-14 11:19:02 IP:59.114.xxx.xxx 訂閱
bruce:
QRLabel.Caption := 繳回的金額為-100元;
您說拆成三段,再組合起來,小弟不太懂意思耶?

敬請指教,感繳不盡…

===================引 用 bruce 文 章===================
'【繳回的金額為'?? ? ? ' -100'??? ? '元】'

請拆成三段,再組合起起,試試囉


===================引 用 channel 文 章===================
各位delphi前輩:
不管是QRLabel、QRMemo或QRRichText…還是其他元件,能否在顯示的文字當中將某幾個字變為紅色?
例:【繳回的金額為-100元】,將【】中的文字顯示在QRLabel、QRMemo或QRRichText…

ps:只能使用一個元件…因為【】中的文字是動態產生的,所以無法將【】中的文字放在不同的元件中

敬請指教,感繳不盡…


------
~小弟淺見,參考看看~
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-14 11:28:53 IP:203.70.xxx.xxx 訂閱

報表輸出= QRLabel.Caption QRLabe2.Caption QRLabe3.Caption
這就是三段組合的意思,需增加兩個元件來組合。


===================引 用 channel 文 章===================
bruce:
QRLabel.Caption := 繳回的金額為-100元;
您說拆成三段,再組合起來,小弟不太懂意思耶?

敬請指教,感繳不盡…

===================引 用 bruce 文 章===================
'【繳回的金額為'?? ? ? ' -100'??? ? '元】'

請拆成三段,再組合起起,試試囉


===================引 用 channel 文 章===================
各位delphi前輩:
不管是QRLabel、QRMemo或QRRichText…還是其他元件,能否在顯示的文字當中將某幾個字變為紅色?
例:【繳回的金額為-100元】,將【】中的文字顯示在QRLabel、QRMemo或QRRichText…

ps:只能使用一個元件…因為【】中的文字是動態產生的,所以無法將【】中的文字放在不同的元件中

敬請指教,感繳不盡…


channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-14 11:47:52 IP:59.114.xxx.xxx 訂閱
bruce:
不好意思,前輩好像沒有看到小弟有說明只能使用一個元件
因為文字是動態產生,且會超過一行,-100出現的位置有時會在第一行,有時會在第二行
所以若我放三個元件,就要寫一些程式去取得正確的位罝(Top、Left)…

看前輩這樣的解答,是不是無法在同一個元件顯示的文字當中將某幾個字變為紅色?
小弟是不是要用三個元件,自已算出Top、Left的位置來達成我想要的功能?

敬請指教,感繳不盡…

===================引 用 bruce 文 章===================

報表輸出= QRLabel.Caption QRLabe2.Caption QRLabe3.Caption?
這就是三段組合的意思,需增加兩個元件來組合。


===================引 用 channel 文 章===================
bruce:
QRLabel.Caption := 繳回的金額為-100元;
您說拆成三段,再組合起來,小弟不太懂意思耶?

敬請指教,感繳不盡…

===================引 用 bruce 文 章===================
'【繳回的金額為'?? ? ? ' -100'??? ? '元】'

請拆成三段,再組合起起,試試囉


===================引 用 channel 文 章===================
各位delphi前輩:
不管是QRLabel、QRMemo或QRRichText…還是其他元件,能否在顯示的文字當中將某幾個字變為紅色?
例:【繳回的金額為-100元】,將【】中的文字顯示在QRLabel、QRMemo或QRRichText…

ps:只能使用一個元件…因為【】中的文字是動態產生的,所以無法將【】中的文字放在不同的元件中

敬請指教,感繳不盡…


------
~小弟淺見,參考看看~
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-05-14 12:21:49 IP:211.21.xxx.xxx 訂閱
是的,冰雪聰明。
taishyang
站務副站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-05-14 13:39:30 IP:122.124.xxx.xxx 未訂閱
小弟有看到這篇可以讓label分段顯示不同顏色
http://www.cobbler.tw/message.aspx?topic_id=36516
不知道能不能套用在QRLabel上
編輯記錄
taishyang 重新編輯於 2007-05-14 13:42:55, 註解 無‧
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-05-14 23:07:12 IP:59.114.xxx.xxx 訂閱
taishyang:
使用Canvas…Good idea…感謝您…
剛經小弟測試的結果好像只能使用QRImage這個元件…
以下是小弟的實作範例,就會顯示為【繳回的金額為-100元】

QRImage1.Canvas.Font.Name := '標楷體';
QRImage1.Canvas.Brush.Color := clWhite;
QRImage1.Canvas.Font.Size := 10;
QRImage1.Canvas.Font.Color := clBlack;
QRImage1.Canvas.TextOut(0, 0, '繳回的金額為');
QRImage1.Canvas.Font.Color := clRed;
QRImage1.Canvas.TextOut(QRImage1.Canvas.TextWidth('繳回的金額為'), 0, '-100');
QRImage1.Canvas.Font.Color := clBlack;
QRImage1.Canvas.TextOut(QRImage1.Canvas.TextWidth('繳回的金額為-100'), 0, '元');


===================引 用 taishyang 文 章===================
小弟有看到這篇可以讓label分段顯示不同顏色
http://www.cobbler.tw/message.aspx?topic_id=36516
不知道能不能套用在QRLabel上
------
~小弟淺見,參考看看~
taishyang
站務副站長


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-05-15 09:57:07 IP:122.124.xxx.xxx 未訂閱
前輩,小弟用BCB用下面的code測試OK,但不會轉Delphi,請您自轉一下^^
<textarea class="cpp" rows="10" cols="60" name="code"> TControlCanvas *Canvas = new TControlCanvas; Canvas->Control = QRLabel1; Canvas->TextOutA(0, 0, "AAAA"); Canvas->Font->Color = clRed; Canvas->TextOutA(Canvas->TextWidth("AAAA"),0,"NNNN"); Canvas->Font->Color = clBlack; delete Canvas; </textarea>

channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-05-15 11:44:37 IP:221.169.xxx.xxx 訂閱
taishyang:
以下是小弟將前輩的BCB CODE 轉為DELPHI CODE
不過有一個問題,若QuickReport不是在Preview狀態的話就可以顯示-->繳回的金額為-100
若為Preview狀態的話就無法顯示,只會顯示原QRLabel1.Caption,也就是無將aCanvas.TextOut的字串Assign給QRLabel1
不知前輩是否有遇到相同的問題?可否幫小弟解惑一下…感激不盡…

<textarea class="delphi" rows="10" cols="60" name="code"> var aCanvas: TControlCanvas; begin aCanvas := TControlCanvas.Create; try aCanvas.Control := QRLabel1; aCanvas.Font.Name := '標楷體'; aCanvas.Brush.Color := clWhite; aCanvas.Font.Size := 12; aCanvas.Font.Color := clBlack; aCanvas.TextOut(0, 0, '繳回的金額為'); aCanvas.Font.Color := clRed; aCanvas.TextOut(aCanvas.TextWidth('繳回的金額為'), 0, '-100'); aCanvas.Font.Color := clBlack; aCanvas.TextOut(aCanvas.TextWidth('繳回的金額為-100'), 0, '元'); finally FreeAndNil(aCanvas); end; end; </textarea>
===================引 用 taishyang 文 章===================
前輩,小弟用BCB用下面的code測試OK,但不會轉Delphi,請您自轉一下^^
<textarea class="cpp" rows="10" cols="60" name="code">????TControlCanvas *Canvas = new TControlCanvas; ????Canvas->Control = QRLabel1; ????Canvas->TextOutA(0, 0, "AAAA"); ????Canvas->Font->Color = clRed; ????Canvas->TextOutA(Canvas->TextWidth("AAAA"),0,"NNNN"); ????Canvas->Font->Color = clBlack; ????delete Canvas; </textarea>

------
~小弟淺見,參考看看~
taishyang
站務副站長


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-05-15 11:49:34 IP:122.124.xxx.xxx 未訂閱
小弟對於關資料庫方面的東西(VCL)都沒接觸過,所以不知道要怎麼解><
只好請其他前輩幫忙了^^
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-05-29 09:40:39 IP:210.242.xxx.xxx 未訂閱
運用一個 TRichEdit, 設定字型的變換後 再將內容塞給 TQRRichText, 然後設定 TQRRichText.ParentRichEdit 屬性為 TRichEdit 即可 程式碼大致如下:

<textarea class="delphi" rows="10" cols="60" name="code"> uses ComCtrls; var re: TRichEdit; procedure TForm1.Button1Click(Sender: TObject); begin Form2.QRRichText1.Lines.Assign(re.Lines); Form2.QRRichText1.ParentRichEdit := re; Form2.QuickRep1.Preview; end; procedure TForm1.FormCreate(Sender: TObject); begin re := TRichEdit.Create(Self); re.Parent := Self; re.Visible := False; re.Lines.Add('繳回的金額為 -100 元'); re.SelStart := 13; re.SelLength := 4; re.SelAttributes.Color := clRed; end; procedure TForm1.FormDestroy(Sender: TObject); begin FreeAndNil(re); end; </textarea>
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-05-30 09:16:39 IP:221.169.xxx.xxx 訂閱
hagar兄:
阿里阿多,感謝您的回覆,小弟的問題經您的答覆已解決了,感恩…

===================引 用 hagar 文 章===================
運用一個 TRichEdit, 設定字型的變換後再將內容塞給 TQRRichText, 然後設定 TQRRichText.ParentRichEdit 屬性為 TRichEdit 即可程式碼大致如下:

<textarea class="delphi" rows="10" cols="60" name="code">uses ComCtrls; var re: TRichEdit; procedure TForm1.Button1Click(Sender: TObject); begin Form2.QRRichText1.Lines.Assign(re.Lines); Form2.QRRichText1.ParentRichEdit := re; Form2.QuickRep1.Preview; end; procedure TForm1.FormCreate(Sender: TObject); begin re := TRichEdit.Create(Self); re.Parent := Self; re.Visible := False; re.Lines.Add('繳回的金額為 -100 元'); re.SelStart := 13; re.SelLength := 4; re.SelAttributes.Color := clRed; end; procedure TForm1.FormDestroy(Sender: TObject); begin FreeAndNil(re); end; </textarea>
------
~小弟淺見,參考看看~
系統時間:2024-04-24 16:45:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!