Zitat von
Muetze1:
Also ein Listenerror bedeutet, dass du ein Problem mit einer Liste hast und nicht mit einem Stream. Und zu deiner Liste: Du bekommst doch bestimmt einen Compilerhinweis, dass die Schleifenvariable lCount ausserhalb der Schleife undefiniert ist, oder? Den solltest du mal beachten, dann hättest du vllt. gesehen, dass deine lCount Schleife nur die nachfolgende IF Abfrage beinhaltet und somit kannst du lCount danach vergessen. Dadurch kommt es dann zu dem o.g. Fehler.
Das Problem mit der Liste ist, das wahrscheinlich aFilename nicht gefunden wurde.Das hatte ich nicht abgesichert. Der Stream wurde trotzdem behandelt. Mit lCount haste Recht. In meinem Fall kann ich ja nichts anderes in die Schleife packen, nur das Ergebnis absichern....
Die Routine klappt jetzt auch soweit. Ich hatte exceptions aus versch. Gründen. Dir Liste, dann der Stream wp ich die Pos nicht auf 0 gesetzt hatte.
Mit ladenen pngs als PNGObject klappt jetzt alles. Nun die letzten Probleme noch:
- bei Icons über Stream laden, bekomme ich noch nichts Sichtbares
- bei Images über Stream laden , bekomme ich eine
exception: Bitmap ist ungültig.
Delphi-Quellcode:
SkinBackground := TImage.Create(SkinForm);
with SkinBackground do
begin
Parent := SkinForm;
Name := iString + '_Background';
SetBounds(0,0, SkinWidth, SkinHeight);
iString := lowercase(Ini.ReadString(Menu,'Background','0'));
Picture.RegisterFileFormat('jpg; *.jpeg','JPEG',TBitmap);
//if FileExists(SkinPfad + iString) then
//Picture.LoadFromFile(SkinPfad + iString);
if LoadPicture(SkinPfad + iString)then;
Picture.Bitmap.LoadFromStream(pFile);
Delphi-Quellcode:
var
Icon : TIcon;
iIndex: Integer;
begin
try
IL := TImageList.Create(Form1);
IL.Width := 32;
IL.Height := 32;
for iIndex := 0
to 34
do
begin
Icon := TIcon.Create;
//if FileExists(SkinPfad + 'icons\' + Ini.ReadString('Icons','Icon' + IntToStr(iIndex) + 'Picture','0')) then
//Icon.LoadFromFile(SkinPfad + 'icons\' + Ini.ReadString('Icons','Icon' + IntToStr(iIndex) + 'Picture','0'));
if LoadPicture(SkinPfad + '
icons\' + Ini.ReadString('
Icons','
Icon' + IntToStr(iIndex) + '
Picture','
0'))
then
Icon.LoadFromStream(pFile);
IL.AddIcon(Icon);
Icon.Free;
end;
Gruß, bluescreen
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz