AGB  ·  Datenschutz  ·  Impressum  







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

Memo / RichEdit for HTML export

Ein Thema von Youuuu · begonnen am 22. Apr 2021 · letzter Beitrag vom 14. Mär 2022
Antwort Antwort
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Memo / RichEdit for HTML export

  Alt 26. Apr 2021, 17:53
Ich bereite mal eine kleine Demo vor und erstelle neuen Thread um den hier nicht mit meinen problem zuzumüllen. Deinen Tipp verstehe ich so nicht ganz. @Redeemer
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#2

AW: Memo / RichEdit for HTML export

  Alt 26. Apr 2021, 18:18
SelLength := High(Integer); = Die Länge des auszuwählenden Textes wird auf die maximal mögliche Länge gesetzt. Das passiert ab der aktuellen Position.

Statt High(Integer) könnte man auch 2147483647 schreiben, muss aber, falls sich der Maximalwert für Integer mal ändern, den Quelltext anpassen

SelAttributes.Color := clIrgendwas; = Ab der aktuellen Position wird alles ab dieser Ausgewählte mit dem angegebene Attribut "gestaltet".

Das entspricht (für mein Verständnis) dem:
Zitat:
... da ich so etwas benötige: "Stelle ab charakter-position die Farbe auf clWasAnderes um"
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Memo / RichEdit for HTML export

  Alt 26. Apr 2021, 18:24
Mein Problem ist gelöst @Reedemer, habe es so versucht wie Du meintest, funzt!
Danke für den Nachtrag @Delphi.Narium!!
Delphi-Quellcode:
procedure TfrmMain.reMainChange(Sender: TObject); // reMain = RichEdit
var
  Len: Integer;
begin

  try
    Len := StrToInt(edtPosition.Text); // edtPosition = Editfeld mit Positionsangabe
  except
    Len := 25;
    edtPosition.Text := '25';
  end;

  if Length(reMain.Text) >= Len then
  begin
    reMain.SelStart := Len;
    reMain.SelLength := Length(reMain.Text);
    reMain.SelAttributes.Color := clGreen;
    reMain.SelStart := Length(reMain.Text);
    reMain.SelLength := 0;
  end;
end;
So nutze ich es nun, bestimmt nicht schön aber macht erstmal alles so wie ich es wollte. Flackert ganz schön dolle, mal sehen was ich da noch rausholen kann.
Es tut mir leid für diesen zwischen-request innerhalb eines fremd threads!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#4

AW: Memo / RichEdit for HTML export

  Alt 26. Apr 2021, 18:48
Delphi-Quellcode:
procedure TfrmMain.reMainChange(Sender: TObject); // reMain = RichEdit
var
  Len : Integer;
  LenText : Integer;
begin
  Len := StrToIntDef(edtPosition.Text,25); // edtPosition = Editfeld mit Positionsangabe
  edtPosition.Text := IntToStr(Len);

  LenText := Length(reMain.Text); // Wird (eventuell) mehrfach benötigt, ermitteln wir nur einmal.
  if LenText >= Len then
  begin
    reMain.SelStart := Len;
    reMain.SelLength := LenText; // Soll wohl der restliche Text sein, dann geht auch:
    reMain.SelLength := High(Integer);
    reMain.SelAttributes.Color := clGreen;
    reMain.SelStart := LenText; // Soll wohl das Ende des Textes sein, dann geht auch diesmal:
    reMain.SelStart := High(Integer);
    reMain.SelLength := 0;
  end;
end;
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Memo / RichEdit for HTML export

  Alt 26. Apr 2021, 21:47
Wenn ich bin zum Ende markieren will, würde ich wirklich einfach High(Integer) nehmen, anstatt mit viel Rechenzeit irgendeine Zahl zu ermitteln, die sowieso größergleich der Restlänge ist und sich deshalb genau wie High(Integer) verhält.
Zeug zwischen Plaintext und RTF zu konvertieren wird Rechenleistung benötigen und der String, aus dem am Ende nur die Länge berechnet wird, muss auch irgendwo gespeichert werden. Ich sehe somit absolut keinen Vorteil darin, irgendwas anderes als High(Integer) zu nehmen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#6

AW: Memo / RichEdit for HTML export

  Alt 26. Apr 2021, 21:55
Wenn ich bin zum Ende markieren will, würde ich wirklich einfach High(Integer) nehmen, anstatt mit viel Rechenzeit irgendeine Zahl zu ermitteln, die sowieso größergleich der Restlänge ist und sich deshalb genau wie High(Integer) verhält.
Zeug zwischen Plaintext und RTF zu konvertieren wird Rechenleistung benötigen und der String, aus dem am Ende nur die Länge berechnet wird, muss auch irgendwo gespeichert werden. Ich sehe somit absolut keinen Vorteil darin, irgendwas anderes als High(Integer) zu nehmen.
Eindeutig ja, MaxInt ginge aber auch (ok: Delphi 7 Hilfe sagt dazu: const MaxInt = High(Integer); )
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Memo / RichEdit for HTML export

  Alt 26. Apr 2021, 22:13
Ihr habt beide Recht! Danke für diese freundliche Unterstützung trotz falschem Threads (Entschuldigung fürs reinplatzen!)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.039 Beiträge
 
Delphi 12 Athens
 
#8

AW: Memo / RichEdit for HTML export

  Alt 27. Apr 2021, 18:19
Wenn ich bin zum Ende markieren will, würde ich wirklich einfach High(Integer) nehmen, anstatt mit viel Rechenzeit irgendeine Zahl zu ermitteln, die sowieso größergleich der Restlänge ist und sich deshalb genau wie High(Integer) verhält.
Zeug zwischen Plaintext und RTF zu konvertieren wird Rechenleistung benötigen und der String, aus dem am Ende nur die Länge berechnet wird, muss auch irgendwo gespeichert werden. Ich sehe somit absolut keinen Vorteil darin, irgendwas anderes als High(Integer) zu nehmen.
Kann man die neue Komponente inzwischen irgendwo herunterladen?
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Memo / RichEdit for HTML export

  Alt 11. Mär 2022, 15:19
Auf Wunsch per E-Mail, hier die Methoden zum Konvertieren von fett/kursiv/unterstrichen/durchgestrichen, Farbe und Aufzählungen in einem Standard-TRichEdit von/zu HTML...

Ich hoffe, es sind alle benötigten Units drin.
Interessant sind nur die Methoden aus RedeemerRichEditHTML.
Angehängte Dateien
Dateityp: 7z RedeemerHTML.7z (25,8 KB, 20x aufgerufen)
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Memo / RichEdit for HTML export

  Alt 14. Mär 2022, 20:56
Der Code aus dem vorherigen Post ist jetzt auf Github.
Janni
2005 PE, 2009 PA, XE2 PA
  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 04:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz