Danke dass ihr mich so prima aufnehmt ! Ich habe zwischenzeitlich noch weiter rumgestöbert und bin DANK deines Tips d3g auf die Lösung gestossen. Für alle die es interessiert:
Die Proceduren:
Delphi-Quellcode:
PROCEDURE TTechBeForm.StoreJPEGImage(Field: STRING);
VAR s : TBlobStream;
fs : TFileStream;
BEGIN
IF OpenPictureDialog1.Execute THEN
BEGIN
fs := TFileStream.Create(OpenPictureDialog1.FileName, fmOpenRead);
s := TBlobStream.create(MainForm.TechTakTable.FieldByName(Field) AS TBlobField, bmWrite);
s.CopyFrom(fs, fs.Size);
fs.free;
s.Free;
END;
END;
und
Delphi-Quellcode:
PROCEDURE TTechBeForm.LoadJPEGImage(Field: STRING; Image: TImage);
VAR s : TBlobStream;
jpg : TJPEGImage;
BEGIN
IF NOT (MainForm.TechTakTable.FieldByName(Field) AS TBlobField).IsNull THEN
BEGIN
s := TBlobStream.create(MainForm.TechTakTable.FieldByName(Field) AS TBlobField, bmRead);
jpg := TJPEGImage.Create;
jpg.LoadFromStream(s);
Image.Picture.Assign(jpg);
jpg.Free;
s.Free;
END ELSE
BEGIN
Image.Picture.Assign(NIL);
END;
END;
können prima dazu verwendet werden, das JPEG aus der Datenbank zu lesen (LoadJPEGImage) bzw. hinein zu schreiben (StoreJPEGImage) !
Dies kann dann beispielsweise bei einem Event zu folgendem kombiniert werden um das Bild in einem TImage (nicht DBImage) anzuzeigen ! DBImage unterstützt anscheinend keine JPEG-Anzeige !
Delphi-Quellcode:
try
MainForm.TechTakTable.Edit;
StoreJPEGImage('TTSnapShoot10');
LoadJPEGImage( 'TTSnapShoot10', Image4 );
MainForm.TechTakTable.Post;
except
end
Beim Laden der Form reicht dann
Delphi-Quellcode:
if( not MainForm.TechTakTable.FieldByName('TTSnapShoot7').IsNull ) then
LoadJPEGImage('TSnapShoot7', Image1 );
Also denn ...
HACKI
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !