Ich mache ein benutzerdefiniertes Schlachtschiffspiel, ich habe ein 10x10 Raster von Objekten (TImage). Ich muss ihre .Picture-Eigenschaft zur Laufzeit ändern, damit Schiffe im Ansichtsfenster angezeigt werden. Ich brauche ein Bild Eigenschaft abhängig von den angegebenen Koordinaten zu ändern, so dass ich erstellt die folgende Array:Delphi 7 - Zuweisen eines TImage zu einem Array von TImage
image: array[1..10,1..10] of TImage;
und ich habe versucht, sie ein TImage-Objekt wie folgt zu vergeben:
player1.image[1,1] := player1.bcvrA1;
die angeblich jemandes SampleTImage.Picture Eigenschaft wie folgt enthalten Links zu allen TImage Objekte auf Ansichtsfenster (die pre-Launch in der Form vorliegen), so kann ich ändern:
image[x,y].Picture.LoadFromFile(SamleFile);
Aber dies wirft ein Acc Ess Verletzung Fehler.
Zugriff auf die Adresse 0046CF10 im Modul 'Project2.exe'. pre Lesen von Adresse 00000628.
ich ein wenig Forschung getan haben, diese Frage vorge Posting, aber jeder auf der Stackoverflow, die ähnliche Fragen gestellt wurden Objekte im laufenden Betrieb zu schaffen, in meinem Fall alle TImage Objekte erstellt werden -runtime und müssen einem zweidimensionalen Array zugewiesen werden, damit ich Eigenschaften 'bequemer' ändern kann.
Wenn es so nicht möglich ist, würde ich gerne jede mögliche optimale Lösung sehen. :)
Es tut mir sehr leid, wenn diese Frage bereits ein Dutzend Mal gestellt und beantwortet wurde. Ich bin ziemlich neu in dieser Art von Objektbetrieb.
Danke für Ihre Zeit! ;)
Das ist der falsche Weg, es zu implementieren. Verwenden Sie keine Steuerelemente, um Spieldarsteller zu malen. Verwenden Sie eine Malmethode, einen Malkasten usw. –
Unabhängig von der richtigen oder falschen Vorgehensweise. Dies ist viel zu wenig Code, um zu sagen, was genau vor sich geht. Und während ich Delphi 7 eine Weile nicht benutzt habe, bin ich ziemlich sicher, dass die Zeile 'image [x, y] .Bild: = 'C: \\ SampleFolder \ SampleFile.jpg';' nicht einmal kompiliert werden würde. Bitte korrekte [MCVE] angeben (http://stackoverflow.com/help/mcve) –
@DalijaPrasnikar Sorry, ich habe den falschen Teil des Codes kopiert, als ich meinen Thread gemacht habe. –