Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi RichEdit Text auf gefüllt prüfen (https://www.delphipraxis.net/153671-richedit-text-auf-gefuellt-pruefen.html)

Eppos 12. Aug 2010 11:59

RichEdit Text auf gefüllt prüfen
 
Hallo zusammen,

ich habe foglendes Problem. Ich habe ein Feld TDBRichEdit der den Text in die DB schreibt.
Wenn ich diesen Text nun aus der Datenbank lade und auf gefüllt prüfe dann schaut das so aus:
Delphi-Quellcode:
If aRichEdit = '' then close;
Da es aber nie leer ist greift diese Abfrage nicht.
Hab Ihr eine andere Idee?

Danke

mkinzler 12. Aug 2010 12:01

AW: RichEdit Text auf gefüllt prüfen
 
Welchen Typ hat aRichEdit?

Eppos 12. Aug 2010 12:03

AW: RichEdit Text auf gefüllt prüfen
 
aRichEdit : String;

DeddyH 12. Aug 2010 12:07

AW: RichEdit Text auf gefüllt prüfen
 
Ist das Feld NOT NULL deklariert? Wenn ja, wie lautet der Standardwert?

Eppos 12. Aug 2010 12:50

AW: RichEdit Text auf gefüllt prüfen
 
vielleicht hilf es weiter was drin steht:
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil MS Sans Serif;}}'#$D#$A'\viewkind4\uc1\pard\lang1031\f0\fs 16 '#$D#$A'\par }

DeddyH 12. Aug 2010 12:58

AW: RichEdit Text auf gefüllt prüfen
 
Ich bin jetzt nicht so vertraut mit dem RichText-Format, aber da steht mindestens ein Zeilenumbruch drin('#$D#$A').

Eppos 12. Aug 2010 13:16

AW: RichEdit Text auf gefüllt prüfen
 
aber ich vergleich ja so:
Delphi-Quellcode:
if ( aMemo = '' ) then exit;
und in Memo stehen ja jede Menge zeichen

DeddyH 12. Aug 2010 13:18

AW: RichEdit Text auf gefüllt prüfen
 
Lädst Du RichText in ein Memo? Dann stehen natürlich die ganzen Formatierungsanweisungen mit drin.

Eppos 12. Aug 2010 15:11

AW: RichEdit Text auf gefüllt prüfen
 
also die Varibale heisst zwar aMemo, ist aber als String deklariert.
Aber die Formatierungen stehen so in der Datenbank. Es müsste als eine Funktion geben,
wo die Formatierungen abschneidet.

mkinzler 12. Aug 2010 15:13

AW: RichEdit Text auf gefüllt prüfen
 
Was für einen typ hat das Feld?

DeddyH 12. Aug 2010 15:26

AW: RichEdit Text auf gefüllt prüfen
 
Quick & Dirty-Lösung: den String in ein RichEdit laden, in dem PlainText auf true steht. Dann einfach dessen Text auslesen.

Eppos 12. Aug 2010 15:45

AW: RichEdit Text auf gefüllt prüfen
 
Daran hatte ich auch schon geadach, fand ich aber keine schicke Lösung...

@Kinzler
Ich denke du meinst den Typ in der DB, der ist Blob 80

DeddyH 12. Aug 2010 15:47

AW: RichEdit Text auf gefüllt prüfen
 
Naja, vielleicht kannst Du auch direkt mit der Riched32.dll arbeiten, aber ob der Aufwand lohnt, muss jeder selber wissen.

simmi 12. Aug 2010 15:56

AW: RichEdit Text auf gefüllt prüfen
 
Kannst Du nicht einfach die Daten in die Komponente TRichEdit laden und die Frage nach dem gefüllt in etwa so stellen

Delphi-Quellcode:
if RichEdit1.Lines.Count=0 then
Sofern keine Zeile Text enthalten ist sollte es funktionieren.

mkinzler 12. Aug 2010 15:58

AW: RichEdit Text auf gefüllt prüfen
 
Wie liest du den Blob aus?

DeddyH 12. Aug 2010 15:58

AW: RichEdit Text auf gefüllt prüfen
 
Er will ja kein Richedit verwenden (obwohl sich das bei RichText ja geradezu aufdrängt).

mkinzler 12. Aug 2010 16:00

AW: RichEdit Text auf gefüllt prüfen
 
Ich würde den Blob auch nicht unbedingt mit einem Richedit auslesen

DeddyH 12. Aug 2010 16:02

AW: RichEdit Text auf gefüllt prüfen
 
Sondern?

mkinzler 12. Aug 2010 16:04

AW: RichEdit Text auf gefüllt prüfen
 
Mir geht es um den Zugrigg auf das Datenbankfeld nicht um die Visualisierung

DeddyH 12. Aug 2010 16:28

AW: RichEdit Text auf gefüllt prüfen
 
Ja eben, ich lese BLOBs immer in einen Stream ein. Nun steht da aber RichText drin, wie soll ich die Formatierung ohne RichEdit da rausbekommen?

Eppos 12. Aug 2010 16:53

AW: RichEdit Text auf gefüllt prüfen
 
wie erzeugt man ein RichEdit zur Laufzeit ohne große was anzuzeigen?

DeddyH 12. Aug 2010 17:04

AW: RichEdit Text auf gefüllt prüfen
 
Hier lade ich einen String aus einem MemoryStream in ein RichEdit und lasse ihn mir ausgeben. Bei Dir wäre das vermutlich ein BlobStream.
Delphi-Quellcode:
procedure TfrmMain.btnLoadClick(Sender: TObject);
var re: TRichEdit;
    memStream: TMemoryStream;
begin
  re := TRichEdit.Create(nil);
  try
    re.Visible := false;
    re.Parent := self;
    memStream := TMemoryStream.Create;
    try
      memStream.LoadFromFile(Dateiname);
      re.Lines.LoadFromStream(memStream);
      ShowMessage(re.Text);
    finally
      memStream.Free;
    end;
  finally
    re.Free;
  end;
end;


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