[英]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.