簡體   English   中英

如何在delphi 7中的TMemo中將所選文本屬性更改為粗體?

[英]How to change selected text attribute into bold in TMemo in delphi 7 ?

我使用TMemo來顯示多行。

我想使用快捷鍵Ctrl + B將TMemo中的選定文本屬性更改為粗體。

例如,用戶輸入“你好,你好嗎?” 在Tmemo中,我希望當用戶選擇“How”並按Ctrl + B然后只有“How”應該出現在那個TMemo中的Bold中。

我使用的是Delphi 7。

請建議解決方案。 感謝幫助。

您無法在備忘錄控件中設置文本格式。 你需要一個豐富的編輯控件, TRichEdit

為了使當前選擇變粗,你可以這樣做:

RichEdit.SelAttributes.Style := RichEdit.SelAttributes.Style + [fsBold];

響應CTRL + A之類的快捷方式調用代碼的首選方法是使用操作。 TActionList添加到表單並向該操作列表添加操作。 將操作的OnExecute事件處理程序設置為指向執行所選文本的粗體的代碼。 Shortcut屬性設置為Ctrl+A 使用操作以便集中控制用戶事件。 通常,可能還有一個工具按鈕,一個菜單項和一個執行相同操作的上下文菜單項,這是操作進入自己的位置。

這是我編寫的使用RichEdit的程序的一部分; 線的一部分顯示為黑色,部分顯示為藍色,可能部分顯示為粗體紅色。 'Text'是RichEdit的一個字段。

procedure TWhatever.InsertText (const atext, btext, ctext: string);
begin
 with RichEdit1 do
  begin
   selstart:= length (text);
   sellength:= 0;
   SelAttributes.Color:= clBlack; 
   seltext:= '[' + atext + '] ';

   selstart:= length (text);
   sellength:= 0;
   SelAttributes.Color:= clBlue;
   seltext:= btext + ' ';

   if ctext <> '' then
    begin   // trap non-existent answers
     selstart:= length (text);
     sellength:= 0;
     SelAttributes.Color:= clRed;
     SelAttributes.Style:= [fsBold];
     seltext:= ctext + ' ';
     SelAttributes.Style:= [];
    end;
   lines.add ('');  // new line
  end;
end;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM