Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Formatierter DB-Text (https://www.delphipraxis.net/215016-formatierter-db-text.html)

d.adams 22. Apr 2024 17:49

Formatierter DB-Text
 
Hallo,

ich möchte eine ältere Anwendung erweitern. Erstellt wurde sie unter Delphi7 und ich muss das auch weiter nutzen.

Ich muss in der Oberfläche ein DB-bezogenes Memo (DBRichEdit) anzeigen, dass Textformatierungen zulässt. ALso Fettdruck, Aufzählungszeichen und idealerweise auch das Einfügen von Bildern per Copy&PAste. Vergleichbar in Etwa wie ein E-Mail-Body in einem Mailprogramm.

Am liebsten würde ich eine (freie) Komponenente benutzen die auch schon die Formatierungsoptionen (Schalter) mit sich bringt.
Kennt jemand eine solche KOmponente und kann mir etwas empfehlen, oder gibt es evtl. eine schnelle andere Möglichkeit mit Bordmitteln von D7?

Gruß

D.Adams

jaenicke 22. Apr 2024 18:24

AW: Formatierter DB-Text
 
Hast du dir einmal die RichEdit Demo angeschaut, die bei Delphi 7 dabei ist? Vielleicht reicht das ja schon...

Papaschlumpf73 23. Apr 2024 08:00

AW: Formatierter DB-Text
 
Keine Ahnung, ob das mit aktuellen Delphi-Versionen geht. Bei Delphi 7 kann TRichEdit und TDBRichEdit jedoch keine Bilder anzeigen.

himitsu 23. Apr 2024 09:36

AW: Formatierter DB-Text
 
Am Delphi selbst liegt es nicht, außer daran welche API-Version das Delphi verwendet und was Windows dort bietet.
https://learn.microsoft.com/de-de/wi...-edit-controls
oder vielleicht welches GrafikFormat und wie es eingebunden ist.
https://stackoverflow.com/questions/...-show-pictures


Delphi-Quellcode:
const
  MSFTEDIT_CLASS       = 'RICHEDIT50W';    { Richedit 4.1 }
  RICHEDIT_CLASSA      = 'RichEdit20A';    { Richedit2.0 Window Class. }
  RICHEDIT_CLASSW      = 'RichEdit20W';    { Richedit2.0 Window Class. }
  RICHEDIT_CLASS10A    = 'RICHEDIT';       { Richedit 1.0 }
Bis Delphi 2007 wurde RICHEDIT_CLASSA genutzt, also v2.0-ANSI,
ab Delphi 2009 RICHEDIT_CLASSW und somit v2.0-Unicode,
sowie im Delphi 11 wird die MSFTEDIT_CLASS verwendet, also v4.1,
und Delphi 7 weiß ich jetzt nicht, aber kannst du ja nachsehn (vermute aber mal auch schon die v2),
siehe Units RichEdit und ComCtrls, bzw. Winapi.RichEdit und Vcl.ComCtrls:

Delphi XE:
Delphi-Quellcode:
procedure TCustomRichEdit.CreateParams(var Params: TCreateParams);
const
...
{$IF NOT DEFINED(UNICODE)}
  RichEditClassName = 'RICHEDIT20A';
{$ELSE}
  RichEditClassName = 'RICHEDIT20W';
{$IFEND}
...
  inherited CreateParams(Params);
  CreateSubClass(Params, RichEditClassName);
Delphi 11:
Delphi-Quellcode:
procedure TCustomRichEdit.CreateParams(var Params: TCreateParams);
  ...
  inherited CreateParams(Params);
  CreateSubClass(Params, MSFTEDIT_CLASS);

d.adams 23. Apr 2024 12:39

AW: Formatierter DB-Text
 
Zitat:

Zitat von jaenicke (Beitrag 1536030)
Hast du dir einmal die RichEdit Demo angeschaut, die bei Delphi 7 dabei ist? Vielleicht reicht das ja schon...

Die habe ich leider nicht zur Verfügung...




Zitat:

Zitat von himitsu (Beitrag 1536038)
Am Delphi selbst liegt es nicht, außer daran welche API-Version das Delphi verwendet und was Windows dort bietet.
https://learn.microsoft.com/de-de/wi...-edit-controls
oder vielleicht welches GrafikFormat und wie es eingebunden ist.
https://stackoverflow.com/questions/...-show-pictures


Delphi-Quellcode:
const
  MSFTEDIT_CLASS       = 'RICHEDIT50W';    { Richedit 4.1 }
  RICHEDIT_CLASSA      = 'RichEdit20A';    { Richedit2.0 Window Class. }
  RICHEDIT_CLASSW      = 'RichEdit20W';    { Richedit2.0 Window Class. }
  RICHEDIT_CLASS10A    = 'RICHEDIT';       { Richedit 1.0 }
Bis Delphi 2007 wurde RICHEDIT_CLASSA genutzt, also v2.0-ANSI,
ab Delphi 2009 RICHEDIT_CLASSW und somit v2.0-Unicode,
sowie im Delphi 11 wird die MSFTEDIT_CLASS verwendet, also v4.1,
und Delphi 7 weiß ich jetzt nicht, aber kannst du ja nachsehn (vermute aber mal auch schon die v2),
siehe Units RichEdit und ComCtrls, bzw. Winapi.RichEdit und Vcl.ComCtrls:

Delphi XE:
Delphi-Quellcode:
procedure TCustomRichEdit.CreateParams(var Params: TCreateParams);
const
...
{$IF NOT DEFINED(UNICODE)}
  RichEditClassName = 'RICHEDIT20A';
{$ELSE}
  RichEditClassName = 'RICHEDIT20W';
{$IFEND}
...
  inherited CreateParams(Params);
  CreateSubClass(Params, RichEditClassName);
Delphi 11:
Delphi-Quellcode:
procedure TCustomRichEdit.CreateParams(var Params: TCreateParams);
  ...
  inherited CreateParams(Params);
  CreateSubClass(Params, MSFTEDIT_CLASS);

Zitat:

Zitat von jaenicke (Beitrag 1536030)
Hast du dir einmal die RichEdit Demo angeschaut, die bei Delphi 7 dabei ist? Vielleicht reicht das ja schon...


Boah.... das musst du mir bitte mal übersetzen? Was wird mit dem Code erreicht?

himitsu 23. Apr 2024 13:18

AW: Formatierter DB-Text
 
D7 ohne RTL/VCL-Quellcodes?


Lagen bei D7 die Demos nicht unverschlüsselt im Installationsmedium (ISO) ?

Wenn man die Demos nicht mit Delphi installiert hat, dann kann man die eventuell auch online nachsehn.
früher auf sourceforge.net und jetzt eben github
https://github.com/Embarcadero/RADStudio11Demos
https://github.com/Embarcadero/RADStudio12Demos



Delphi kapselt in der VCL oftmals entsprechende Controls vom Windows.
Buttons, Edits, CheckBox oder eben das RichEdit (nur beim TLabel und TImage nicht, da wird selbstgemalt ... PS: TStaticText ist das echte "Label" vom Windows)

Intern dann MSDN-Library durchsuchenCreateWindow, mit der entsprechenden "Klasse", entsteht dabei das jeweilige Control
https://learn.microsoft.com/de-de/wi...-edit-controls

Und da kommt es dann darauf an, welche System-DLL, bzw. welche FensterKlasse genutzt wird ... gibt für viele Controls mehrere Versionen, welche sich dann auch im Funktionsumfang unterscheiden.
https://learn.microsoft.com/de-de/wi...s-of-rich-edit

Bei den Standard-Controls wie Edit, Button oder ComboBox, hängt es auch davon ab, ob man den "XP-Style" aktiv hat, also ob die NewCommonControls V6 (und neuer) via Manifest aktiviert sind, wo Windows entscheidet welche DLL-Version geladen wird.

d.adams 28. Apr 2024 17:39

AW: Formatierter DB-Text
 
Zitat:

Zitat von himitsu (Beitrag 1536047)
D7 ohne RTL/VCL-Quellcodes?


Lagen bei D7 die Demos nicht unverschlüsselt im Installationsmedium (ISO) ?.

Ich habe "nur" eine virtuelle Maschine mit der fertigen Installation. Die Demos sind nicht darauf.


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