Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SynEdit Zeile markieren... (https://www.delphipraxis.net/66322-synedit-zeile-markieren.html)

Mazel 28. Mär 2006 13:53


SynEdit Zeile markieren...
 
Hi,

ich arbeite mit der TSynEdit Komponente und habe da ein Problem. Es gibt bei SynEdit die Möglichkeitt, den gesamten Text zu markieren mit SynEdit.SelectAll. Wie kann ich eine einzelne Zeile markieren? Ich meine jetzt aber nicht ActivLineColor. In WordPad oder auch anderen Programmen kann man doch auch eine Zeile markieren.

Gruß
Mazel

kalmi01 28. Mär 2006 15:41

Re: SynEdit Zeile markieren...
 
Hi,

probiers doch mal mit SelStart & SelEnd

Matze 28. Mär 2006 15:47

Re: SynEdit Zeile markieren...
 
Hi

Es müsste reichen, CaretY auf die Zeile zu setzen, CaretX auf 0 (oder war's 1 :gruebel: ), also auf den Anfang der Zeile und dann mit

Delphi-Quellcode:
SelLength(Length(SynEdit1.LineText));
oder so in der Art, die Zeile markieren. Kann's grad nicht testen.

bigg 28. Mär 2006 15:50

Re: SynEdit Zeile markieren...
 
moin,

so könnte eine Funktion zu deinem Problem aussehen:

Delphi-Quellcode:
procedure SynEditSelLine(const Line: Integer; const Synedit: TSynEdit);
var i, l: Integer;
begin
  if (Line < Synedit.Lines.Count + 1) and (Line > -1) and (Synedit <> nil) then
  begin
    l := 0;

    for i := 0 to Line -2 do
    inc(l, Length(Synedit.Lines[i]) + 2);

    Synedit.SelStart := l;
    Synedit.SelEnd  := l + Length(Synedit.Lines[Line -1]);
  end;
end;

Matze 28. Mär 2006 15:54

Re: SynEdit Zeile markieren...
 
Wieso nicht einfach so wie ich's geschrieben habe? ;)

Delphi-Quellcode:
procedure SelectLine(LineNo: Integer; SynEdit: TSynEdit);
begin
  SynEdit.CaretX := 1;
  SynEdit.CaretY := LineNo;
  SynEdit.SelLength := Length(SynEdit.LineText);
end;
Deine Schleife ist nicht gerade sehr performant, wie du siehst geht es leicht ohne. Klar, die Abfrage, ob die Zeile bzw. das SynEdit existiert, muss man bei mir noch hinzufügen.

bigg 28. Mär 2006 15:55

Re: SynEdit Zeile markieren...
 
Das war nur die komplexe Lösung :P :mrgreen:

Mazel 28. Mär 2006 15:59

Re: SynEdit Zeile markieren...
 
Hi,

danke für die Antworten. Habe eben die beiden ausprobiert und sie funktionieren super. :thumb: :thumb:

Ich danke euch.


Gruß
Mazel


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz