Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Gleiches Image in Array speichern (https://www.delphipraxis.net/94348-gleiches-image-array-speichern.html)

Hamsterpower 20. Jun 2007 11:56


Gleiches Image in Array speichern
 
Das erste Mal, dass mir die SuFu nicht weiter gebracht hat..

Ich habe das Problem, dass ich das gleiche Image mit einer Schleife in ein Array speichern will. Allerdings wird das Image immer weitergeschoben und scheint nur im letzten Arrayfeld auf..

Delphi-Quellcode:
 for x_:=0 to 30 do
  for y_:=0 to 50 do
    begin
      bmpfeld[x_,y_].Bild:=form1.Image4;
      bmpfeld[x_,y_].Bild.Top:=(y_*7+41);
      bmpfeld[x_,y_].Bild.Left:=(x_*7+101);
      bmpfeld[x_,y_].Bild.BringToFront;
      bmpfeld[x_,y_].Bild.Visible:=true;
    end;
Schonmal danke für die Hilfe :)

mkinzler 20. Jun 2007 12:07

Re: Gleiches Image in Array speichern
 
Wie ist der Record deklariert? Was hast du genau vor?

CCRDude 20. Jun 2007 12:24

Re: Gleiches Image in Array speichern
 
Ist ja auch klar, form1.Image4 ist ja nur ein Objekt. Jede Änderung wirkt sich dann auf dasselbe Objekt aus, egal welchen Zeiger auf das (selbe) Objekt Du verwendest.

Willst Du Kopien haben, müsstest Du neue Bilder anlegen (TImage.Create) und denen die Eigenschaften des Originals zuweisen (.Assign).

Ob ein Array aus TImage allerdings eine ideale Lösung wäre, erst recht wenn alle gleich aussehen sollen... beschreib doch mal, was Du vorhast...

Hamsterpower 20. Jun 2007 13:25

Re: Gleiches Image in Array speichern
 
Der Record sieht nur so aus:

Delphi-Quellcode:
  MyImage = record
    Zahl:Integer;
    Bild:TImage;
  end;
Und das Array so:

Delphi-Quellcode:
var Bmpfeld: array[0..30,0..50] of MyImage;
Ich will einen Snakeclon programmieren. Dazu wollte ich ein 30*50 Array anlegen, das mit einem Integerwert die Richtung speichert, die die Schlange genommen hat, als sie durchgekommen ist, und die Image sollten dann die Schlange zusammenbauen, eben auch oft aus dem selben Grundimage.

Ganz am Anfang wollte ich alle Arrayfelder mit einem Hintergrund füllen, deshalb auch diese Schleife.

mkinzler 20. Jun 2007 13:49

Re: Gleiches Image in Array speichern
 
Dann solltest du aber auch kopien des Bildes speichern anstatt referenzen (Zeiger) auf eines oder besser nur die Positionen speichern.

Hamsterpower 20. Jun 2007 13:53

Re: Gleiches Image in Array speichern
 
Und wie lege ich eine Kopie an?

So gehts nicht..

Delphi-Quellcode:
Timage.Create(bmpfeld[1,1].Bild);
bmpfeld[1,1].Bild.Assign(form1.image4);

DeddyH 20. Jun 2007 13:54

Re: Gleiches Image in Array speichern
 
Delphi-Quellcode:
bmpfeld[1,1].Bild := TImage.Create;

Hamsterpower 20. Jun 2007 18:24

Re: Gleiches Image in Array speichern
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
bmpfeld[1,1].Bild := TImage.Create;

[Error] Unit1.pas(128): Not enough actual parameters..

Was muss ich da noch dahinter dran schreiben?

mkinzler 20. Jun 2007 18:37

Re: Gleiches Image in Array speichern
 
Den Owner.
z.B
Delphi-Quellcode:
bmpfeld[1,1].Bild := TImage.Create(Self);

Hamsterpower 20. Jun 2007 18:42

Re: Gleiches Image in Array speichern
 
Und wo wird der festgelegt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 1 von 4  1 23     Letzte »    

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 by Thomas Breitkreuz