Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi richedit1.SelLength := 8; (https://www.delphipraxis.net/7495-richedit1-sellength-%3D-8%3B.html)

Pseudemys Nelsoni 13. Aug 2003 19:06


richedit1.SelLength := 8;
 
hi, was bringt denn Sellength?

wenn ich per button dies tue:

Delphi-Quellcode:
  richedit1.SelAttributes.Color := cllime;
  richedit1.Lines.Add('bla');
funktioniert es doch einwandfrei?

Chewie 13. Aug 2003 19:09

Re: richedit1.SelLength := 8;
 
Zitat:

Zitat von silent
hi, was bringt denn Sellength?

Setzt/liest die Anzahl der selektierten Zeichen.

Zitat:

Zitat von silent
wenn ich per button dies tue:

Delphi-Quellcode:
  richedit1.SelAttributes.Color := cllime;
  richedit1.Lines.Add('bla');
funktioniert es doch einwandfrei?

Was genau hat das mit der ersten Frage zu tun ??

Illuminator-23-5 13. Aug 2003 19:37

Re: richedit1.SelLength := 8;
 
ob es funktioniert hängt einfach davon ab, was du machen willst.
wenn du dem selektierten text die farbe clLime zuweisen willst und dann 'bla' dem text hinzufügen willst (wobei dann die markierung wieder aufgehoben wird), dann klappts!!!

Pseudemys Nelsoni 13. Aug 2003 19:55

Re: richedit1.SelLength := 8;
 
es geht ja aber auch farblich text zu adden ohne text zu markieren

urs.liska 13. Aug 2003 20:07

Re: richedit1.SelLength := 8;
 
Hi, probier mal das, dann verstehst Du, was es soll
Delphi-Quellcode:
richedit1.Clear;
richedit1.Add('Das ist eine Zeile');
richedit1.SelStart := 3;
richedit1.SelLength := 4;
richedit1.SelAttributes.Color := clLime;
Grüße
Urs

P.S. hab gerade kein Delphi laufen, aber es sollte funktionieren...
P.S. 2: Du kannst SelLength auch verwenden um abzufragen, welcher Text gerade (vom Benutzer) markiert ist, z.B. um ihn zu kopieren oder was auch immer.

Illuminator-23-5 13. Aug 2003 20:16

Re: richedit1.SelLength := 8;
 
man könnte im fall noch die markierung von vorher speichern, dann fällts nicht auf, dass man die markierung aufgehoben hat
(2 integer-variablen nehmen und am anfang selStart und selEnd speichern und am ende wieder setzen)
die 1. zeile muss übrigens
richedit1.ClearSelection;
heißen, sonst wirdder gesamte inhalt gelöscht!!!!

urs.liska 13. Aug 2003 20:35

Re: richedit1.SelLength := 8;
 
@Illuminator-23-5:
Das mit Clear war so gemeint, da ich für das Beispiel ein leeres Richedit haben wollte.
Aber natürlich hätte ich darauf hinweisen sollen, dass die erste Zeile nicht für einen "echten" Anwendungsfall gedacht war.

Grüße und @silent: viel Erfolg
Urs

Pseudemys Nelsoni 13. Aug 2003 20:43

Re: richedit1.SelLength := 8;
 
hm, jo jetzt versteh ichs...aber funzt bei mir nur ind er ersten zeile...wie mach ich das auch in zeile 2, 3 etc?

also mit:

Delphi-Quellcode:
richedit1.lines.Add('Das ist eine Zeile');
richedit1.SelStart := 3;
richedit1.SelLength := 4;
richedit1.SelAttributes.Color := clLime;

meine ich

danke für den tip btw :)

urs.liska 13. Aug 2003 21:03

Re: richedit1.SelLength := 8;
 
Wie gesagt, habe gerade kein Delphi laufen...
wenn ich mich richtig erinnere, bezieht sich SelStart auf die Position im gesamten Text, der in der property richedit1.Text als durchgehender String gespeichert wird.
Text in der zweiten Zeile hätte dann eben einen höheren Wert für SelStart (?).
Lass Dir doch auf ButtonClick die aktuellen Werte für SelStart und SelLength anzeigen und probiere ein wenig mit dem laufenden Programm; dann wirst Du wahrscheinlich ein Gefühl dafür bekommen, wie Du mit den Werten umgehen kannst.
Delphi-Quellcode:
label1.Caption := IntToStr(Richedit1.SelStart);
label2.Caption := IntToStr(Richedit1.SelLength);
Ich glaube, man kann bei TRichEdit nicht auf eine Cursorposition in Zeilen/Spalten zugreifen.

Viel Erfolg
Urs

Alexander 13. Aug 2003 21:11

Re: richedit1.SelLength := 8;
 
Habe mir das jetzt hier nicht alles durchgelesen, eigentlich nur das hier :
Zitat:

Ich glaube, man kann bei TRichEdit nicht auf eine Cursorposition in Zeilen/Spalten zugreifen.
Ist es das, was du meinst?
Delphi-Quellcode:
RichEdit1.CaretPos


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.
Seite 1 von 2  1 2      

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