Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Formatierung wird nicht mit übernommen (https://www.delphipraxis.net/16757-formatierung-wird-nicht-mit-uebernommen.html)

X21Carsten 23. Feb 2004 01:03


Formatierung wird nicht mit übernommen
 
Hallo,

ich habe ein Richedit Feld in dem ich verschiedene Formatierungen von dem markierten Text mache.

Delphi-Quellcode:
if FontDialog1.Execute then
    begin
      M_Auswertung.SelAttributes.Name := FontDialog1.Font.Name;
      M_Auswertung.SelAttributes.size := FontDialog1.font.size;
      M_Auswertung.SelAttributes.Style := FontDialog1.Font.Style;
      M_Auswertung.SelAttributes.Color:= FontDialog1.Font.Color;
      M_Auswertung.SelAttributes.Height:= FontDialog1.Font.Height;
end;
Der Text wird auch so dargestellt wie es sein soll, aber sobald ich auf speichern gehe verliert es wahrscheinlich die Formatierung. Ich speichere in eine Access Datenbank in ein Memo Feld.

Delphi-Quellcode:
Dset_Termine.FieldByName('Auswertung').asstring:=Richedit1.Lines.Text;
Warum verliert der immer die Formatierung? Kann diese nicht in der Datenbank gespeichert werden???

dizzy 23. Feb 2004 01:43

Re: Formatierung wird nicht mit übernommen
 
Du speicherst ja "Lines.Text". Und die sind eben nur ein purer String. Du übergibst es ja sogar explizit als String! Mir wäre nicht bekannt, wie man das "einfach so" lösen könnte. Was du aber machen kannst (so du die DB erweitern darfst) ist die Informationen über die Formatierung in extra Feldern zu hinterlegen, und beim Auslesen zu berücksichtigen. Wenn in einer Zeile unterschiedliche Formatierungen auftauchen (z.B. ein Wort fett, der Rest normal), dann gibt es 2 Möglichkeiten. Entweder Eine Tabelle der Art:
Code:
----------------------------------------------------------
| Text (string) |           Attribute (string)          |
|---------------------------------------------------------
| Hallo Leute  |Arial, Size=6, Bold=false, Italic=false |
| ich bin      |Arial, Size=6, Bold=false, Italic=true |
| dizzy #10#13  |Arial, Size=6, Bold=true, Italic=false |
----------------------------------------------------------
Oder gar ein quasi eigenes Format, dass du beim Auslesen parst. Etwa wie HTML:
Code:
-------------------------------------------------
|               Text (string)                  |
-------------------------------------------------
| %Font=Arial%%Size=6%Hallo Leute %i=on%ich bin |
| %i=off%%b=on%dizzy %<10><13>%                 |
-------------------------------------------------
In beiden Fällen wäre die (richtig interpretiert): "Hallo Leute ich bin dizzy
"

... oder auch mit den BB-Code-Tags, wie hier im Forum oder so. Aber jetzt hinterlegst du ja ausschliesslich den String, und keine Infos über die Formatierung!


gruss, und gut Nacht!
dizzy

X21Carsten 23. Feb 2004 01:49

Re: Formatierung wird nicht mit übernommen
 
hm gibt es da auch ne möglichkeit das gleich mit formatierung zu speichern oder muss man das von hand programmieren? in was soll ich lines.text abändern?

dizzy 23. Feb 2004 01:58

Re: Formatierung wird nicht mit übernommen
 
Zitat:

Zitat von dizzy
Mir wäre nicht bekannt, wie man das "einfach so" lösen könnte.

An "Lines.Text" wirst du nix tun können. Du brauchst ja den Text :zwinker:
Evtl. bietet deine DB (weiss ja nicht welche du verwendest) eine Möglichkeit. Da ich mich in diesem Gebiet aber leider nicht wirklich prall auskenne, kann ich dir selbst MIT Wissen um deine DB nicht sagen ob das geht.

Ich würd's von Hand machen.


gruss,
dizzy


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