Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MEMO FELD in DBGRID anzeigen lassen (https://www.delphipraxis.net/63053-memo-feld-dbgrid-anzeigen-lassen.html)

Christian18 13. Feb 2006 13:50

Datenbank: Access • Version: 2000 • Zugriff über: ADO

MEMO FELD in DBGRID anzeigen lassen
 
Hallo,

wie kann ich ein Memo Feld in einem DBGrid anzeigen lassen???

MFG Christian18

Frank Borland 13. Feb 2006 14:54

Re: MEMO FELD in DBGRID anzeigen lassen
 
Moin moin,

im Ereignis onDrawColumnCell kannst Du den Text selbst im DBGrid darstellen. Alternativ kannst Du beim onChange im Dataset ein Memo-Feld mit den aktuellen Werten anzeigen.

hth


Malte

Alterauge 12. Aug 2012 12:31

AW: MEMO FELD in DBGRID anzeigen lassen
 
Hallo,

was meint ihr mit :

onChange im Dataset ein Memo-Feld ?

wie könnte sowas Quelltext mäßig aussehen?

mkinzler 12. Aug 2012 12:34

AW: MEMO FELD in DBGRID anzeigen lassen
 
Wie schon öfters erwähnt muss man ein kleines Bisschen Grundlagenwissen voraussetzen können. Du bist aber weit davon entfernt auch nur das notwendigste Basiswissen zu haben.

DeddyH 12. Aug 2012 12:35

AW: MEMO FELD in DBGRID anzeigen lassen
 
Und dafür 6 1/2 Jahre alte Threads aus der Versenkung zu holen ist auch nicht unbedingt nötig.

Alterauge 12. Aug 2012 12:45

AW: MEMO FELD in DBGRID anzeigen lassen
 
Hallo DeddyH,

bin immer noch am lernen, dass wird auch noch ein paar Jahre dauern!
Werde aber immer besser!

Wenn ich ein Beispiel bekomme, kann ich dieses besser verstehen und abspeichern!

Delphi-Quellcode:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin

end;
Danke

DeddyH 12. Aug 2012 12:52

AW: MEMO FELD in DBGRID anzeigen lassen
 
Was hat das Kapern alter Threads mit Lernen zu tun? Dein Problem ist lediglich die Frage, wie man Daten aus einem BLOB-Feld über einen STREAM in ein MEMO lädt. Die großgeschriebenen Wörter könnten bei der Forensuche weiterhelfen.

Alterauge 12. Aug 2012 12:55

AW: MEMO FELD in DBGRID anzeigen lassen
 
Danke :-)

Versuche mein Glück!

Alterauge 12. Aug 2012 13:21

AW: MEMO FELD in DBGRID anzeigen lassen
 
Sieht noch nicht gut aus:

Delphi-Quellcode:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
  FileStream: TFileStream;
  BlobStream: MyBlobStream;  // Undeklarierter Bezeichner 'MyBlobStream ???
begin
  MyTable1.Edit;
  try
    FileStream := DBMemo1.Text;
    BlobStream := MyTable1.CreateBlobStream(MyTable1.FieldByName('Message'),bmWrite);
    BlobStream.CopyFrom(FileStream,FileStream.Size);      // MyBlobStream enthält kein Element namens CopyFrom
    FileStream.Free;
    BlobStream.Free; // MyBlobStream enthält kein Element namens Free
    MyTable1.Post;
  except
    MyTable1.Cancel;
    raise;
  end;
 end;

mkinzler 12. Aug 2012 14:00

AW: MEMO FELD in DBGRID anzeigen lassen
 
:shock:

DeddyH 12. Aug 2012 14:08

AW: MEMO FELD in DBGRID anzeigen lassen
 
Du solltest Dich dringendst mit den Grundlagen beschäftigen, es scheint ja bereits bei der Unterscheidung zwischen Variablen und Datentypen zu hapern. So kann das nichts werden.

Bummi 12. Aug 2012 14:13

AW: MEMO FELD in DBGRID anzeigen lassen
 
Was hast Du eigentlich vor ?
Wenn Du in einem Grid, für mehrere Datensätze etwas anzeigen willst ist der Hinweis auf das selbst "Zeichnen" zielführend, wenn Du nur für den aktuellen Satz etwas anzeigen willst kannst Du ein DBMemo dran hängen ...
Dein "sieht noch nicht gut aus" Code zu kommentieren, geschweige denn zu verbessern ist sinnlos...

Alterauge 12. Aug 2012 14:41

AW: MEMO FELD in DBGRID anzeigen lassen
 
JA Ihr hab Recht! Komme nicht weiter!

Díeses blöde DBGRid!

Möchte den Inhalt eines DBMemo im DBGrid anzeigen!
Wie mache ich das nur?

Werde aus dem Quelltext auch nicht schlau!

Alterauge 12. Aug 2012 21:21

AW: MEMO FELD in DBGRID anzeigen lassen
 
Vielleicht kann mir einer weiter helfen?
Habe jetzt schon einiges ausprobiert!

Wie sieht dieser Quelltext aus? Bin ich schon nah dran?


Delphi-Quellcode:
procedure TForm1.CRDBGrid1CellClick(Column: TColumn);
var
i,weite : integer;
s,t:string;
nRect:TRect;
begin
if field is Tmemofield then begin
with
CRDBGrid1.Canvas do
begin
weite:=Rect.Right-Rect.Left - DBMemo1('...');
s:=field.asstring;
i:=0;
repeat
inc(i);
t:=copy(s,1,i);
until DBMemo1(t) > weite;
t:= copy(s,1,i-1);
fillrect(rect);
DBMemo1(rect,rect.Left+1,rect.top+2,t+'...');

  end;
 end;
end;
Möchte den DBMemo1(Inhat) im DBGrid anzeigen!

Also DBMEmo1 ins DBGrid Feldname 'Meldung'!

himitsu 12. Aug 2012 21:35

AW: MEMO FELD in DBGRID anzeigen lassen
 
Nur mal war zum Lernen, bzw. rausfinden, was benötigt wird.
Zitat:

Delphi-Quellcode:
var
  BlobStream: MyBlobStream; // Undeklarierter Bezeichner 'MyBlobStream ???
begin
  MyTable1.Edit;
  try
    FileStream := DBMemo1.Text;
    BlobStream := MyTable1.CreateBlobStream(MyTable1.FieldByName('Message'),bmWrite);

Woher soll Delphi auch wissen, was du mit MyBlobStream gemaint ist?
Undeklariert bedeutet, daß Delphi nicht weiß was das sein soll. (da es das entweder nicht gibt, oder die enthaltende Unit nicht eingebunden wurde)

Siehe OH/CodeInsight: Was gibt CreateBlobStream zurück?
Genau diesen Typen braucht man für die Zielvariable, bzw. einen Vorfahren davon.

Und der Rest sind Folgefehler, welche aus den ersten Fehlern resultieren.

Und den Rest guck ich mir jetzt nicht an. (hab keine Lust mir um diese Uhrzeit, an der grauenhaften Formatierung, die Augen zu verderben)
Aber ein Tipp: Woher soll Delphi wissen, was du mit
Delphi-Quellcode:
DBMemo1(
meinst, vorallem wenn du keine Property/Methoden angibst, die verwendet werden soll?
Für dich wäre es sinnvoll, wenn Delphi hellseherische Fähigkeiten hätte, was leider nicht der Fall ist ... aber den Tipp mit den zu lernenden Grundlagen könnte bestimmt helfen.


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