Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Images mehrfach verwenden (https://www.delphipraxis.net/82661-images-mehrfach-verwenden.html)

fabgo 17. Dez 2006 17:27


Images mehrfach verwenden
 
Hallo an alle,

habe folgendes problem: ich möchte eine grafik in delphi mehrfach verwenden.

das funktioniert aber nicht.

Delphi-Quellcode:
  ImSchuesse:Array[0..50] of TImage;
  schuesse:Array[0..100] of Tshot;
in der ersten prozedur steht folgendes:
Delphi-Quellcode:
for i:=0 to 50 do
   begin
     ImSchuesse[i]:=strich;  // strich ist eine grafik
   end;
  Anzahl:=1;
und dann beim aufruf:

Delphi-Quellcode:
if(Key=VK_SPACE) then
 begin
    schuesse[Anzahl]:=Tshot.Create(Player.GetX, Player.GetY, 0, 0, ImSchuesse[Anzahl], Form1);
    Anzahl:=Anzahl+1;
 end
Es wird aber immer nur einmal die grafik aufgerufen...wie kann ich bilder duplizieren?

gruß fabgo

Ratte 17. Dez 2006 18:02

Re: Images mehrfach verwenden
 
Das Problem ist dass du Pointer zuweist.
Delphi-Quellcode:
for i:=0 to 50 do
   begin
     ImSchuesse[i]:=TImage.create.
     ImSchuesse[i].assign:=strich.Graphic;  
   end;
  Anzahl:=1;
(Ich hoffe dass ich den parameter von assign richtig gewählt habe...)

fabgo 17. Dez 2006 18:23

Re: Images mehrfach verwenden
 
so funktioniert das aber nicht.

problem: Nicht genügend wirkliche Parameter

welche Parameter muss man da denn jetzt angeben?

Helmi 17. Dez 2006 18:38

Re: Images mehrfach verwenden
 
Hallo,

so würds gehen:
Delphi-Quellcode:
for i:=0 to 50 do
   begin
     ImSchuesse[i] := TImage.create(self);
     
     with ImSchuesse[i] do
       begin
         Picture.Graphic.Assign(Strich.Graphic);
         Parent := Form1;          //oder welcher Parent auch immer!
       end;
   end;
  Anzahl:=1;
Und nicht vergessen, die Images im OnDestroy der Form wieder freizugeben

[Edit]
Immer das zu schnelle schreiben! Code bei Assign richtig gestellt.

fabgo 17. Dez 2006 18:53

Re: Images mehrfach verwenden
 
danke nochmal,

aber der gibt mir immer noch die fehlermeldung aus:

Delphi-Quellcode:
Picture.Graphic.Assign(Strich.Graphic); // Undefinierter Bezeichner Graphic (der in Klammern)
muss ich den oben noch irgendwie definieren?

danke fabgo

Helmi 17. Dez 2006 18:55

Re: Images mehrfach verwenden
 
von welchem typ ist strich?

fabgo 17. Dez 2006 18:59

Re: Images mehrfach verwenden
 
strich ist von TImage

Helmi 17. Dez 2006 19:04

Re: Images mehrfach verwenden
 
Delphi-Quellcode:
     with ImSchuesse[i] do
       begin
         Picture.Assign(Strich.Picture);
         Parent := Form1;          //oder welcher Parent auch immer!
       end;

fabgo 17. Dez 2006 19:06

Re: Images mehrfach verwenden
 
super, danke! hat alles geklappt!

gruß fabgo


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz