Danke, DeddyH, die
DLL funktioniert einwandfrei.
Und speichern kann ich die Dateien auch ganz leicht mit dem Einzeiler:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
FDLLHandle := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + '
imagedll.dll'));
Randomize;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if FDLLHandle <> 0
then
FreeLibrary(FDLLHandle);
end;
procedure TForm1.LoadPokemon(
Index: Cardinal; aPicture: TPicture);
var
ResStream: TResourceStream;
png: TPngObject;
begin
Assert((FDLLHandle <> 0)
and Assigned(aPicture));
if (
Index < 1)
or (
Index > MAXPICINDEX)
then
raise Exception.CreateFmt('
Index muss zwischen 1 und %d liegen.', [MAXPICINDEX]);
ResStream := TResourceStream.CreateFromID(FDLLHandle,
Index, RT_RCDATA);
try
ResStream.Position := 0;
png := TPngObject.Create;
try
// Einzeiler:
ResStream.Savetofile('
D:\Projekt_Pokémon\Bild.png');
// oder wo auch immer
png.LoadFromStream(ResStream);
aPicture.Assign(png);
finally
png.Free;
end;
finally
ResStream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadPokemon(Random(MAXPICINDEX) + 1, Image1.Picture);
end;
Danke nochmal an euch alle
Ihr habt mir echt weitergeholfen!