Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi formatiertes Memo auslesen (https://www.delphipraxis.net/84094-formatiertes-memo-auslesen.html)

SilverMoonGirl 11. Jan 2007 10:58

Datenbank: Paradox • Version: 9 • Zugriff über: Query

formatiertes Memo auslesen
 
Aloha :hi:

Ich möchte gerne eine Spalte aus der Tabelle auslesen und in ein Richedit schreiben. Die Spalte ist vom Typ "formatiertes Memo". So einfach, wie ich mir das dachte gehts anscheinend doch nicht.

Wenn ich es auf diesem Weg mache:
Delphi-Quellcode:
 RichEdit.Lines.Add(Query.FieldByName('Kommentar').AsString)
bekomme ich die Fehlermldung "Fehler beim Einfügen einer Zeile im RichEdit"

bei dieser Version
Delphi-Quellcode:
RichEdit.Text:= Query.FieldByName('Kommentar').Astring
Wird im RichEdit einfach nur ein "[]" eingefügt. :|

Hab ich da noch irgendwas vergessen oder einfach nur einen Denkfehler? :gruebel:

marabu 11. Jan 2007 11:17

Re: formatiertes Memo auslesen
 
Hallo Simone,

vielleicht passt das auf dein Problem: klick

Grüße vom marabu

mikhal 11. Jan 2007 11:19

Re: formatiertes Memo auslesen
 
Müssten eigentlich auch Blobs sein. Schau dir mal auf meiner Site die Tipps

Blob auslesen und
Blob schreiben an. Da wird zwar ein TTable verwendet, aber die Funktionalität sollte genauso mit TQuery funktionieren.

Grüße
Mikhal

Luckie 11. Jan 2007 11:21

Re: formatiertes Memo auslesen
 
Was willst du? Ein formatiertes Memo auslesen oder Text in ein RichEdit Steuerelement einfügen? Dein Thread-Titel widerspricht den Code, den du gepostet hast.

SubData 11. Jan 2007 11:35

Re: formatiertes Memo auslesen
 
Das Datenbankfeld wird den Typ "formatiertes Memo" haben... ?!

SilverMoonGirl 11. Jan 2007 13:55

Re: formatiertes Memo auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von SubData
Das Datenbankfeld wird den Typ "formatiertes Memo" haben... ?!

es wird nicht nur, es hat :wink: siehe Anhang.

@marabu, so funktioniert es leider nicht. Ich bekomme als Fehler immer noch dieses Viereck "[]" zurück :gruebel:

raiguen 11. Jan 2007 15:12

Re: formatiertes Memo auslesen
 
Hi Simone,

probier das mal:
Delphi-Quellcode:
  RichEdit.Text := Query.FieldByName('kommentar').Value;

SilverMoonGirl 11. Jan 2007 15:46

Re: formatiertes Memo auslesen
 
@ruiguen leider ändert das auch nichts :|

Ich habe das mal als ShowMessage anzeigen lassen und das Fenster ist so groß, als wenn der Text drin stehen würde. Zu sehen ist aber nur das Viereck :gruebel:

mikhal 11. Jan 2007 15:50

Re: formatiertes Memo auslesen
 
Hast du es mal mit Assign versucht, wie auf meiner Site gezeigt wird? Dort wird zwar ein Bild als Blob verwendet (Datentyp Image) aber auch Text und formated Text sind Blobs. Also sollte das Handling ähnlich sein.

Grüße
Mikhal

mikhal 11. Jan 2007 15:55

Re: formatiertes Memo auslesen
 
ungetestet:

Delphi-Quellcode:
procedure LoadText(Abfrage: TQuery; Rtf: TRichEdit; Feldname: String);
begin
  if (Abfrage.FindField(Feldname) As TBlobField).BlobSize > 0 then
   Rtf.Lines.Assign((Abfrage.FindField(Feldname) As TBlobField));
end;
entsprechend anpassen für Daten speichern.

Mikhal

Korrektur: Statt TRichText muss es TRichEdit heißen...

SilverMoonGirl 11. Jan 2007 16:20

Re: formatiertes Memo auslesen
 
Vielen Dank :kiss:

mit mikhals code funktioniert es

SilverMoonGirl 15. Jan 2007 14:57

Re: formatiertes Memo auslesen
 
Zitat:

Zitat von SilverMoonGirl
mit mikhals code funktioniert es

... naja doch nicht so ganz.

Ich habe jetzt zu Testzwecken verschiedene Texte in die Tabellenspalte kopiert. Dabei habe ich festgestellt, wenn der Text sehr lang ist(also z.B. eine Geschichte), wird am Anfang etwas weggeschnitten und durch das "[]" ersetzt. Nur das Ende des Textes wird angezeigt.

Kopiere ich jetzt einen kurzen Text(3 Zeilen oder so)in die Tabelle, wird nur das "[]" angezeigt :gruebel:

Ich versteh das nicht, der Zusammenhang mit der Textlänge ist mir irgendwie nicht klar :|

marabu 15. Jan 2007 16:02

Re: formatiertes Memo auslesen
 
Hallo Simone,

Code zum Einlesen eines Formatted-Memo hast du bekommen, Code für die Zuweisung des RTF-Textes an ein RichEdit auch. Schau dir doch mal den RTF-Text an, den meine Funktion dir als String zurückgibt. Ich möchte wetten, dass da gar kein RTF-Text drin steht. Womit wurde das F-Feld beschrieben? Wenn du ein solches Feld mit Paradox beschreibst, dann hast du ein Problem, da Paradox ein Binär-Format schreibt, welches wohl auch nur Paradox wieder auswertet.

Freundliche Grüße

SilverMoonGirl 15. Jan 2007 16:18

Re: formatiertes Memo auslesen
 
Zitat:

Zitat von marabu
Womit wurde das F-Feld beschrieben? Wenn du ein solches Feld mit Paradox beschreibst, dann hast du ein Problem, da Paradox ein Binär-Format schreibt, welches wohl auch nur Paradox wieder auswertet.

Jap, das ist der Fall :|
deine Funktion hatte ich auch schon ausprobiert, allerdings habe ich auch nur das "[]" zurückbekommen

Ich danke dir :kiss:

marabu 15. Jan 2007 16:45

Re: formatiertes Memo auslesen
 
Übrigens:

Die einmalige oder auch wiederholte Übernahme der binären Paradox-Daten aus einem F-Feld kannst du auf der Paradox-Seite mit OPAL unterstützen. Dazu kannst du die Methoden writeToClipboard() oder writeToRTFFile() des Memo-Objekts benutzen. Eine Krücke - aber besser als Schicht im Schacht.

Freundliche Grüße

mikhal 16. Jan 2007 08:37

Re: formatiertes Memo auslesen
 
Anders als von Marabu beschrieben wird es wohl auch nicht richtig funktionieren, da Formatted Text ein proprietäres Format von Paradox ist, das nichts mit RTF gemein hat (siehe z.B. hier und hier).

Das Verfahren das ich oben beschrieben habe, funktioniert bei mir auch nur einwandfrei mit Blobs vom Format Memo bzw. Image. Ich verwende dann auch nicht TDBMemo oder TDBImage.

Grüße
Mikhal


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