是否有可能避免TRichEdit在点击按钮时失去焦点(例如粗体)?



使用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;

但它并不漂亮(恕我直言)。

相关内容

  • 没有找到相关文章

最新更新