Einzelnen Beitrag anzeigen

nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: [Andorra2D] TSprite.Image mit eigenem Bitmap

  Alt 25. Sep 2012, 22:09
Danke für den Wink mit dem Zaunspfahl. Hat nicht direkt geholfen, aber ich hab mal testweise versucht, meiner ImageList dynamisch ein Bild anzuhängen:
Delphi-Quellcode:
Bmp.SaveToFile('C:\Temp\TestBitmap.bmp');
with FImageList.Add('TestBitmap') do
  begin
    Texture.LoadGraphicFromFile('C:\Temp\TestBitmap.bmp', FALSE, clNone);
    Restore;
  end;
I := FImageList.Count - 1;

TempSprite := TAnimationSprite.Create(Parent, FDraw);
TempSprite.X := X;
TempSprite.Y := Y;
TempSprite.Z := Z;
TempSprite.Image := FImageList[I]
Und das funktioniert wieder.

Hab dann mal tiefer gesucht und mir die Funktionen angeschaut. Dabei festgestellt, dass in TAdImage.Texture.LoadGraphicFromFile die Textur über einen Umweg per TAdBmp -> TAdImage.Texture.Texture.LoadFromBitmap(TAdBmp) geladen wird. Dann das mal bei mir ausprobiert und es geht auch ... Keine Ahnung, wieso und warum das vorher nicht geklappt hat, wenn's auch die DynTexture-Demo genauso macht.

Delphi-Quellcode:
AdImage := TAdImage.Create(FDraw);
AdBmp := TAdBitmap.Create;
try
  AdBmp.Assign(Bmp);
  AdImage.Texture.Texture.LoadFromBitmap(AdBmp, ad32Bit);
  AdImage.Restore;
finally
  FreeAndNil(AdBmp);
end;

TempSprite := TAnimationSprite.Create(Parent, FDraw);
TempSprite.X := X;
TempSprite.Y := Y;
TempSprite.Z := Z;
TempSprite.Image := AdImage;

Geändert von nuclearping (25. Sep 2012 um 22:13 Uhr)
  Mit Zitat antworten Zitat