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/)
-   -   Memo / RichEdit for HTML export (https://www.delphipraxis.net/207678-memo-richedit-html-export.html)

Youuuu 22. Apr 2021 07:57

Memo / RichEdit for HTML export
 
Hi,

ich suche eine Komponente, ähnlich dem OutlookEditor, in dem ich Text farblich gestalten und stylen kann (fett, usw.), welcher dann den gestalteten Text als HTML string ausgeben kann.

Gibt es solch eine Komponente bereits, gerne auch kostenpflichtige.


Grüße

TigerLilly 22. Apr 2021 08:49

AW: Memo / RichEdit for HTML export
 
HTML Components
https://www.delphihtmlcomponents.com/

Redeemer 23. Apr 2021 18:38

AW: Memo / RichEdit for HTML export
 
Ich hab mir kürzlich so ein Ding geschrieben, das fett/kursiv/unterstrichen/durchgestrichen, Farbe und Aufzählungen in einem Standard-TRichEdit von/zu HTML wandelt. Schriftgröße ist nicht drin, weil das bei Bildschirmskalierung komisch arbeitet, und ich das Feature nicht brauche.
Falls Bedarf besteht, kann ich es mal hochladen.

Rollo62 23. Apr 2021 19:34

AW: Memo / RichEdit for HTML export
 
Zitat:

Zitat von Redeemer (Beitrag 1487709)
Ich hab mir kürzlich so ein Ding geschrieben, ...

Ja das wollte ich auch noch, basierend auf diesem schönen TTextLayout für FMX, und mal austesten was da Alles geht.
Es ist aber wohl kein Editor, sondern nur die Ausgabe.

Ich fürchte das es sowas für VCL nicht gibt, beziehungsweise dass man das nicht irgendwie für FMX/VCL nutzen könnte.
Muss ich noch reinschauen, ist aber definitv auf der Todo Liste.

KodeZwerg 26. Apr 2021 17:22

AW: Memo / RichEdit for HTML export
 
Zitat:

Zitat von Redeemer (Beitrag 1487709)
Ich hab mir kürzlich so ein Ding geschrieben, das fett/kursiv/unterstrichen/durchgestrichen, Farbe und Aufzählungen in einem Standard-TRichEdit von/zu HTML wandelt. Schriftgröße ist nicht drin, weil das bei Bildschirmskalierung komisch arbeitet, und ich das Feature nicht brauche.
Falls Bedarf besteht, kann ich es mal hochladen.

Ich würde mich freuen da ich so etwas benötige: "Stelle ab charakter-position die Farbe auf clWasAnderes um" und ich mich mit RichEdit irgendwie zu doof anstelle. Falls Deines so etwas kann, bitte lade hoch, Dankeschön!

Redeemer 26. Apr 2021 17:34

AW: Memo / RichEdit for HTML export
 
Geht das nicht so?
Delphi-Quellcode:
SelLength := High(Integer);
SelAttributes.Color := clIrgendwas;

KodeZwerg 26. Apr 2021 17:53

AW: Memo / RichEdit for HTML export
 
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

Delphi.Narium 26. Apr 2021 18:18

AW: Memo / RichEdit for HTML export
 
Delphi-Quellcode:
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 ;-)

Delphi-Quellcode:
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"

KodeZwerg 26. Apr 2021 18:24

AW: Memo / RichEdit for HTML export
 
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!

Delphi.Narium 26. Apr 2021 18:48

AW: Memo / RichEdit for HTML export
 
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;

TurboMagic 26. Apr 2021 19:00

AW: Memo / RichEdit for HTML export
 
Zitat:

Zitat von Redeemer (Beitrag 1487709)
Ich hab mir kürzlich so ein Ding geschrieben, das fett/kursiv/unterstrichen/durchgestrichen, Farbe und Aufzählungen in einem Standard-TRichEdit von/zu HTML wandelt. Schriftgröße ist nicht drin, weil das bei Bildschirmskalierung komisch arbeitet, und ich das Feature nicht brauche.
Falls Bedarf besteht, kann ich es mal hochladen.

Gerne Mal wo veröffentlichen. Gerne auch per GetIt...

Grüße
TurboMagic

Redeemer 26. Apr 2021 21:47

AW: Memo / RichEdit for HTML export
 
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.

Delphi.Narium 26. Apr 2021 21:55

AW: Memo / RichEdit for HTML export
 
Zitat:

Zitat von Redeemer (Beitrag 1487930)
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:
Delphi-Quellcode:
const MaxInt = High(Integer);
)

KodeZwerg 26. Apr 2021 22:13

AW: Memo / RichEdit for HTML export
 
Ihr habt beide Recht! Danke für diese freundliche Unterstützung trotz falschem Threads (Entschuldigung fürs reinplatzen!)

TurboMagic 27. Apr 2021 18:19

AW: Memo / RichEdit for HTML export
 
Zitat:

Zitat von Redeemer (Beitrag 1487930)
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?

Redeemer 11. Mär 2022 15:19

AW: Memo / RichEdit for HTML export
 
Liste der Anhänge anzeigen (Anzahl: 1)
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.

Redeemer 14. Mär 2022 20:56

AW: Memo / RichEdit for HTML export
 
Der Code aus dem vorherigen Post ist jetzt auf Github.


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