gpt4 book ai didi

delphi - 如何从 TRichEdit 控件中完全删除选择栏?

转载 作者:行者123 更新时间:2023-12-03 14:44:36 25 4
gpt4 key购买 nike

TRichEdit 控件中每行的左侧有一个不可见的空间,其中光标变为右上箭头,当您单击此处时,整行都会被选中。当 TRichEdit 的文本对齐方式为居中或右时,很容易看到它。我相信这个空间被称为选择栏

TMemo 控件中不存在这样的栏。

我的问题:

如何删除此选择栏,以便光标行为与 TMemo 中相同?

我使用的是 Delphi 7,没有 TRichEdit 属性来控制此行为。

有一个 ECO_SELECTIONBAR 值可以与 EM_SETOPTIONS 消息一起使用,但它只能添加或删除选择栏的一小部分(仅当您想要添加具有左对齐方式的 TRichEdit 的选择栏)。

最佳答案

感谢大家的回答。

由于似乎没有“正确”的方法来做到这一点,我设计了以下解决方案:

unit TRichEditRemoveSelectionBar;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
procedure RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure RichEdit1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
B: Boolean = False;

implementation

{$R *.dfm}

// ------------------------------------------------------------------------- //

procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (GetCursor <> Screen.Cursors[crDefault]) and
(GetCursor <> Screen.Cursors[crIBeam]) then
begin
SetCursor(Screen.Cursors[crIBeam]);
B := True;
end else
B := False;
end;

procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if B then
begin
SetCursor(Screen.Cursors[crIBeam]);
RichEdit1.SelLength := 0;
end;
end;

procedure TForm1.RichEdit1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if B then
SetCursor(Screen.Cursors[crIBeam]);
end;

// ------------------------------------------------------------------------- //

end.

它一点也不优雅,但它完成了工作。

请注意,此代码不允许双击整行选择,并且不处理三次单击全文选择。为此,您可能必须使用拦截器类。

关于delphi - 如何从 TRichEdit 控件中完全删除选择栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com