Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frage zu RichEdit (https://www.delphipraxis.net/95278-frage-zu-richedit.html)

waschlap 4. Jul 2007 14:49


Frage zu RichEdit
 
Hallo Zusammen,

ich habe mal wieder ne Frage und zwar ich Benutze die Komponente Richedit für eine Ausgabe von einem text, der soll aber verschiedenen formatiert sein prinzipiell auch kein Prob, nur wenn ich einen Textteil mit voranstehende Tabs, kan ich ihn nicht sagen ab wann die formatierung starten soll, ein kleines beispiel:

Delphi-Quellcode:

Richedit1.Lines.add(#9#9#9#9 + 'Summe von ' + #9 + 'Euro');
  Richedit1.Lines.add(#9#9#9#9 + 'blabla ' + #9 + 'Euro');

  for i:=0 to RichEdit1.Lines.Count -1 do
  begin
    with RichEdit1 do
    begin
      SelStart := Perform(EM_LINEINDEX, i, 0);
      SelLength := 60;
      if i= 1 then
      begin

        SelAttributes.Style:= [fsUnderline];
      end;
    end;
Sieht dann folgt aus ____________________blabla______Euro

Ich habe in meinem Reichedit zwei Zelien die Zweite würde ich gerne ab 'blabla' unterstreichen, nur des funzt überhaupt net.
wenn ich nur eine Zeile habe, funzt es aber sofern zwei oder mehr drin stehen und ich
Selstart := Perform(EM_LINEINDEX, i, 0);
benutze geht es nimmer.
Kann mir da jmd helfen?

Wäre super Danke

Manu

Codewalker 4. Jul 2007 15:02

Re: Frage zu RichEdit
 
hm, ich bin mir nicht sicher, ob ich dich richtig verstanden habe, aber du möchtest Text in ein RichEdit einfügen, der unterstrichen sein soll?
Dann würde ich wie folgt vorgehen (Pseudocode):

1. Length(RichEdit1.Text) merken
2. Text einfügen
3. Length(RichEdit1.Text) nocham getrennt merken
4. SelStart auf Länge aus Schritt 1 setzen
5. SelLength auf Länge von Schritt 3 minus Länge aus Schritt 1 setzen

Jetzt sollte der eingefügte Text markiert sein und du kannst mit RichEdit.SelAttributes sämtliche gewünschten Formatierungen durchführen, ohne Probleme auch zeilenübergreifen, das RichEdit1.Text als ein einzelner Langer String behandelt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:15 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