![]() |
Delphi-Version: 7
Schleife zum Erstellen von Shapes
Hallo Leute,
bin ganz neu hier im Forum und wollte mal so schauen wie es hier so ist :) Hab' dann auch gleich mal eine Frage, doch zuerst muss ich noch sagen, dass ich absoluter Laie bin und erst seit einem halben Jahr im Rahmen der Schule mit Delphi "arbeite". Ich möchte nun mit Hilfe einer Schleife eine Form erstellen. In dem Fall einen Kreis.
Delphi-Quellcode:
Nun habe ich einige Probleme :D
for i:=1 to ix do
BEGIN Koerper[i]:=TShape.Create(Form1); Koerper[i].Parent:=Form1; Koerper[i].Left:= ball2.Left+Koerper[i].Width; Koerper[i].Top:=ball2.Top; Koerper[i].Height:=ball2.Height; Koerper[i].Width:=ball2.Width; Koerper[i].Brush.Color:=clLime; END; Zu erst steht unten bei den Warnungen: "FOR-Schleifenvariable muss eine einfache lokale Variable sein" var i:integer; Koerper: array of TShape; Will ich mein Programm mit der Schleife starten, wie sie dort oben steht, bekomme ich außerdem die Meldung:"Im Projekt Project1.exe ist eine Exception der Klasse EAccesViolation aufgetreten. Meldung:'Zugriffsverletzung bei Adresse 0044D4F5 in Modul Project1.exe'. Schreiben von Adresse 00000004'. Prozess wurde angehalten." Markiert wird mir hierbei die Zeile:
Delphi-Quellcode:
Koerper[i]:=TShape.Create(Form1);
Ich hoffe mir kann jemand helfen. MfG Frittenbudenmann |
AW: Schleife zum Erstellen von Shapes
Du wirst die Zählvariable global deklariert haben.
|
AW: Schleife zum Erstellen von Shapes
i ist global deklariert, das stimmt. Ist aber wohl falsch, oder?
Ich habe außerdem die Schleife in einer Timerprozedur, was wohl auch nicht so angebracht ist, wie ich gerade bemerkt habe. Werde sie mal in eine eigene Prozedur schreiben. :) |
AW: Schleife zum Erstellen von Shapes
Hat sich erledigt.
Trotzdem danke :D :thumb: |
AW: Schleife zum Erstellen von Shapes
i solltest du lokal in der Prozedur definieren. Ausserdem musst du erstmal die Länge des Arrays setzen. Quasi so:
Delphi-Quellcode:
Edit: Der Kasten kam nicht :(
var
i: Integer; begin SetLength(Koerper, 10); for i := 0 to 9 do begin Koerper[i]:=TShape.Create(Form1); // ... end; end; |
AW: Schleife zum Erstellen von Shapes
Und wie bekomme ich es nun hin, dass die Formen, die erscheinen sollen, Kreise sind? (:
|
AW: Schleife zum Erstellen von Shapes
Wie genau meinst du das mit der Länge?
|
AW: Schleife zum Erstellen von Shapes
Wie viele Elemente das Array aufnehmen soll, das ist die Länge.
|
AW: Schleife zum Erstellen von Shapes
Und wie bekomme ich es hin, dass mehrere Shapes auf der x-Achse direkt nebeneinander, aber nicht aufeinander liegen? :)
Ist auch meine letzte Frage für heute :D |
AW: Schleife zum Erstellen von Shapes
Setze die x-Position entsprechend.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 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