Hallo an alle,
ich habe ein TClientDataSet mit den Feldern:
1.AutoInc (Integer), 2.LandName (String), 3. TIcon (Blob): mit fester Größe
und will den 3.TIcon mit Icons (Typ Blob) füllen.
Schreiben eines Icons in das Feld TIcon wie folgt kein Problem:
Delphi-Quellcode:
begin
Stream:= nil;
try
// CreateStream
Stream:= TMemoryStream.Create;
frmMain.CDS_Laden(cdsLand, '\Land.dat');
for i:=0 to 240 do
begin
frmMain.ilFlaggen.GetIcon(i, icBild);
// SaveImageToStream
icBild.SaveToStream(Stream);
Stream.Position:= i; // ist richtig ????
cdsLand.Insert;
cdsLand['sLand'] := cbLand.Items[i]; // LandName eintragen
// LoadBlobFieldFromStream
TBlobField(cdsLand.FieldByName('blbFahne')).LoadFromStream(Stream); // Icon eintragen
cdsLand.Post;
end
except
Stream.Free;
raise;
end;
Stream.Free;
end;
Fehler: beim Lesen wie kann ich die einzelenen Icons (Einträge) aus Stream lesen oder ist das Stream wie Felder ansprechbar ?:
Delphi-Quellcode:
begin
Stream:= nil;
try
// CreateStream
Stream:= TMemoryStream.Create;
// DatenLesen
TBlobField(cdsLand.FieldByName('blbFahne')).SaveToStream(Stream);
Stream.Position:= 10; // ist richtig ???
// Stream.Seek(0, soFromCurrent);
icBild.LoadFromStream(Stream);
Image1.Picture.Assign(icBild);
except
Stream.Free;
raise;
end;
Stream.Free;
end;