delphi SynEdit 鼠标点击行号栏自动选中所在行  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi SynEdit 鼠标点击行号栏自动选中所在行


SynEdit 鼠标点击行号栏自动选中所在行

//CaretX  光标或鼠标所在行的列号(第几列),从0开始计数
//CaretY  光标或鼠标所在行的行号(第几行),从0开始计数
//SynEdit.Lines.Strings[]下标从0开始。要CaretY-1   设置LineNumberStart=0没用。
procedure TfrmLogin.sqlTextGutterClick(Sender: TObject; Button: TMouseButton; X, Y, Line: Integer; Mark: TSynEditMark);
begin
  // ShowMessage(Format('CaretX:%d;CaretY:%d'+#13+'Line_Text:[%s]',[sqlText.CaretX,sqltext.CaretY,sqlText.Lines.Strings[sqltext.CaretY-1]]));
 { Memo控件可以采用下面的方法选中指定行,SynEdit无效,只能选中第一行。
   sqlText.SelStart := SendMessage(sqlText.Handle, EM_LINEINDEX, sqltext.CaretY - 1, 0);
   sqlText.SelLength := Length(sqlText.Lines[sqltext.CaretY - 1]);  }
   sqlText.SelLength := Length(sqlText.Lines.Strings[sqltext.CaretY-1]); //选中该行
end;

Memo 当前行号,坐标,位置


可以使用Memo的属性CaretPos.X来取行鼠标所在行的行数与鼠标所在行的第几位


Memo.CaretPos.X 光标或鼠标所在行的列号(第几位),从0开始计数

Memo.CaretPos.Y 光标或鼠标所在行的行号(位于Memo的第几行),从0开始计数


 


TBufferCoord  bc=synEditor1->CaretXY;


synEditor1->CaretX;

synEditor1->CaretY;

————————————————


原文链接:https://blog.csdn.net/wh445306/article/details/103316933



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.037837982177734 seconds