【发布时间】:2023-03-08 12:08:02
【问题描述】:
我想在类似于 Delphi 代码编辑器的装订线中单击左侧时选择一行(单击行号,已安装 CNPack)。我想答案在于 selStart、selEnd、smLine 选择模式,但无法做出任何可行的解决方案。
procedure TForm1.SynEdit1GutterClick(Sender: TObject; Button: TMouseButton; X,
Y, Line: Integer; Mark: TSynEditMark);
begin
SynEdit1.SelectionMode := smLine;
SynEdit1.SelStart := 0;
SynEdit1.SelEnd := SynEdit1.Lines[Line].Length;
SynEdit1.SelectionMode := smNormal; //restore
//Code not working
//I don't remember the code which made it select a line with smLine
end;
【问题讨论】:
-
如果您创建了minimal reproducible example,我们可以轻松地对其进行修改以满足您的需求。否则,我们必须花时间编写测试台程序。
-
我们不知道您正在处理哪个事件。也许有多种可能性,而您选择了错误的一种。如果每次你问一个问题你都会因为没有提供 MCVE 而受到指责,你不认为你应该听吗?或者,如果您不愿意,并且不喜欢 SO 的工作方式,为什么不问更符合您期望的其他地方呢?
-
对我来说这是 SynEdit 中的默认行为。尝试单击排水沟并向下移动鼠标。行被选中。
-
该 SO 链接以这种方式开始 - “当询问有关由您的代码引起的问题时......”。对不起,我没有代码开始。我在问是否有人知道 synEdit 库方法来实现我正在寻找的东西。
-
代码注释中的“我不记得是什么代码使它选择了带有smLine的行”是什么意思? - 那么,您是否设法选择了一行? :)
标签: delphi delphi-xe5