AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SynEdit Zeile markieren...

Ein Thema von Mazel · begonnen am 28. Mär 2006 · letzter Beitrag vom 28. Mär 2006
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

SynEdit Zeile markieren...

  Alt 28. Mär 2006, 14:53
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
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#2

Re: SynEdit Zeile markieren...

  Alt 28. Mär 2006, 16:41
Hi,

probiers doch mal mit SelStart & SelEnd
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: SynEdit Zeile markieren...

  Alt 28. Mär 2006, 16:47
Hi

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

SelLength(Length(SynEdit1.LineText)); oder so in der Art, die Zeile markieren. Kann's grad nicht testen.
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#4

Re: SynEdit Zeile markieren...

  Alt 28. Mär 2006, 16:50
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;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: SynEdit Zeile markieren...

  Alt 28. Mär 2006, 16:54
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.
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#6

Re: SynEdit Zeile markieren...

  Alt 28. Mär 2006, 16:55
Das war nur die komplexe Lösung
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#7

Re: SynEdit Zeile markieren...

  Alt 28. Mär 2006, 16:59
Hi,

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

Ich danke euch.


Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 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