好的,现在我想我看到了这个问题.你有一个TRichEdit
和一个TButton
.那你做点什么
procedure TForm1.Button1Click(Sender: TObject);
begin
with RichEdit1.SelAttributes do
Style := Style + [fsBold];
end;
Run Code Online (Sandbox Code Playgroud)
而且你很恼火Rich Edit控件在你点击时会失去焦点Button1
.通常情况下,你使用TToolButton
的TToolbar
为"大胆"按钮.这不会使编辑器失去焦点,因为a TToolButton
不是窗口控件.
如果您不想使用TToolBar
(或任何等效控件),只需使用a TSpeedButton
而不是a TButton
.
然而,正常的做法是使用a TActionList
.在表单上删除此类控件,然后添加新操作,调用它ActnBold
或其他内容.将标题设置为'Bold'
,提示'Make the selection bold.'
,添加快捷方式Ctrl+B
和写入
with RichEdit1.SelAttributes do
Style := Style + [fsBold];
Run Code Online (Sandbox Code Playgroud)
在它的OnExecute
事件中.然后,您可以将此操作关联到任何按钮,速度按钮,工具栏按钮,菜单项,...,只需将控件的Action
属性设置为ActnBold
.
如果你真的,真的想要使用窗口控件,比如a TButton
,那你可以做到
procedure TForm1.Button1Click(Sender: TObject);
begin
with RichEdit1.SelAttributes do
Style := Style + [fsBold];
RichEdit1.SetFocus;
end;
Run Code Online (Sandbox Code Playgroud)
但它并不美丽(恕我直言).