![]() |
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:
Schonmal danke für die Hilfe :)
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; |
Re: Gleiches Image in Array speichern
Wie ist der Record deklariert? Was hast du genau vor?
|
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... |
Re: Gleiches Image in Array speichern
Der Record sieht nur so aus:
Delphi-Quellcode:
Und das Array so:
MyImage = record
Zahl:Integer; Bild:TImage; end;
Delphi-Quellcode:
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.
var Bmpfeld: array[0..30,0..50] of MyImage;
Ganz am Anfang wollte ich alle Arrayfelder mit einem Hintergrund füllen, deshalb auch diese Schleife. |
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.
|
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); |
Re: Gleiches Image in Array speichern
Delphi-Quellcode:
bmpfeld[1,1].Bild := TImage.Create;
|
Re: Gleiches Image in Array speichern
Zitat:
Was muss ich da noch dahinter dran schreiben? |
Re: Gleiches Image in Array speichern
Den Owner.
z.B
Delphi-Quellcode:
bmpfeld[1,1].Bild := TImage.Create(Self);
|
Re: Gleiches Image in Array speichern
Und wo wird der festgelegt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 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 by Thomas Breitkreuz