使用delphi和丰富的编辑,我需要复制的东西沿着这个非常编辑我写的行,当你选择一个文本并按下粗体按钮,文本仍然选择而不是取消选择和失去焦点。
我怎样才能做到这一点?
谢谢。
好的,现在我想我知道问题了。有一个TRichEdit
和一个TButton
。然后输入
procedure TForm1.Button1Click(Sender: TObject);
begin
with RichEdit1.SelAttributes do
Style := Style + [fsBold];
end;
,你是烦恼的事实,富编辑控件失去了焦点,当你点击Button1
。通常您使用TToolbar
中的TToolButton
作为"加粗"按钮。这不会使编辑器失去焦点,因为TToolButton
不是一个窗口控件。
如果您不希望使用TToolBar
(或任何等效控件),只需使用TSpeedButton
而不是TButton
。
TActionList
。在窗体上放置这样的控件,然后添加一个新操作,将其称为ActnBold
或其他东西。设置标题为'Bold'
,提示为'Make the selection bold.'
,添加快捷方式Ctrl+B
,写入
with RichEdit1.SelAttributes do
Style := Style + [fsBold];
在其OnExecute
事件中。然后,您可以将此操作关联到任何按钮,速度按钮,工具栏按钮,菜单项,…,只需将控件的Action
属性设置为ActnBold
。
如果你真的,真的想使用一个窗口控件,比如TButton
,那么你可以做
procedure TForm1.Button1Click(Sender: TObject);
begin
with RichEdit1.SelAttributes do
Style := Style + [fsBold];
RichEdit1.SetFocus;
end;
但它并不漂亮(恕我直言)。