Danke für die Info...
...aber das hatte ich schon getan. Ich vermute, daß es daran liegt, daß mehrere gleiche TPngImageList vorhanden sind und es sich um die
DFM eines DataModuls handelt. Wenn ich den Stream als Datamodule "einlese" bekomme ich die Meldung daß die Klasse TPngImageList nicht bekannt ist. Logisch, denn mein dynamisch erzeugtes Datamodule hat keine uses...
Ich habe dann erst mal abgebrochen... Für Ideen bin ich dankbar.
Versuchslabor:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
FFileStream:= TFileStream.Create('
D:\Projekte\Delphi Unicode\eAV3\Arbeitskopie\Quelltext\dm_ImageLists.dfm',fmOpenRead);
FMemoryStream:= TMemoryStream.Create;
pngil16:= TPngImageList.Create(
nil);
// Namen vom Standard auf die Namen in der DFM geändert
dmImageLists:= TDataModule.Create(
nil);
try
ObjectTextToBinary(FFileStream,FMemoryStream);
//FMemoryStream.LoadFromStream(FFileStream);
FMemoryStream.Position:= 0;
FMemoryStream.ReadComponent(pngil16);
// auch Versuch das komplette DataModule einzulesen incl. ReadComponentRes
//FImageList:= dmImageLists.FindComponent('pngil16') as TPngImageList;
btn1.Images:= pngil16;
//FImageList
btn1.ImageIndex:= 100;
finally
FFileStream.Free;
FMemoryStream.Free;
pngil16.Free;
dmImageLists.Free;
end;
end;