Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife zum Erstellen von Shapes (https://www.delphipraxis.net/165140-schleife-zum-erstellen-von-shapes.html)

Frittenbudenmann 15. Dez 2011 20:59

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:
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;
Nun habe ich einige Probleme :D

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

Luckie 15. Dez 2011 21:02

AW: Schleife zum Erstellen von Shapes
 
Du wirst die Zählvariable global deklariert haben.

Frittenbudenmann 15. Dez 2011 21:07

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. :)

Frittenbudenmann 15. Dez 2011 21:12

AW: Schleife zum Erstellen von Shapes
 
Hat sich erledigt.

Trotzdem danke :D


:thumb:

wicht 15. Dez 2011 21:13

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:
var
  i: Integer;
begin
  SetLength(Koerper, 10);
  for i := 0 to 9 do
  begin
    Koerper[i]:=TShape.Create(Form1);
    // ...
  end;
end;
Edit: Der Kasten kam nicht :(

Frittenbudenmann 15. Dez 2011 21:14

AW: Schleife zum Erstellen von Shapes
 
Und wie bekomme ich es nun hin, dass die Formen, die erscheinen sollen, Kreise sind? (:

Frittenbudenmann 15. Dez 2011 21:15

AW: Schleife zum Erstellen von Shapes
 
Wie genau meinst du das mit der Länge?

Luckie 15. Dez 2011 21:22

AW: Schleife zum Erstellen von Shapes
 
Wie viele Elemente das Array aufnehmen soll, das ist die Länge.

Frittenbudenmann 15. Dez 2011 21:33

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

Luckie 15. Dez 2011 21:46

AW: Schleife zum Erstellen von Shapes
 
Setze die x-Position entsprechend.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 Uhr.
Seite 1 von 2  1 2      

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