2017-12-27 17 views
0

Ich möchte eine Zeile auswählen, wenn ich links im Gutter klicke, ähnlich wie im Delphi-Code-Editor (Klick auf Zeilennummer, CNPack installiert). Ich denke, die Antwort liegt im SelStart-, SelEnd-, smLine-Auswahlmodus, konnte aber keine praktikable Lösung ergeben.Wie wähle ich eine Zeile in SynEdit, wenn ich links im Gutter klicke?

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; 
+3

enthalten Wenn Sie ein gemacht hatte [MCVE] es wäre es uns leicht machen es zu ändern, um Ihre Bedürfnisse zu erfüllen. Ohne dass wir Zeit damit verbringen müssen, das Testbettprogramm zu schreiben. –

+0

Ich verstehe ernsthaft nicht, dass ich Ereignishandler hier reproduzieren muss, damit Leute anfangen können. Jedes Mal bekomme ich eine -1 gefolgt von diesem Kommentar. Ich mache es sowieso. – user30478

+3

Wir hatten keinen Hinweis auf welches Ereignis Sie handelten. Vielleicht gab es mehrere Möglichkeiten und du hast die falsche gewählt. Wenn du jedesmal, wenn du eine Frage stellst, dafür belangt wirst, dass du keinen MCVE bereitgestellt hast, denkst du nicht, dass du zuhören solltest? Oder wenn Sie nicht möchten, dass SO nicht funktioniert, warum fragen Sie nicht woanders nach Ihren Erwartungen? –

Antwort

2

können Sie ecSelLineEnd Befehl:

SynEdit1.ExecuteCommand(ecSelLineEnd, #0, nil) 

in der Gosse Click-Ereignis.

Sie müssen das Gerät SynEditKeyCmds

Verwandte Themen