Hi,
ich beschäftige mich erst seit kurzem mit Delphi und bringe mir das meiste selbst bei.
Euer Forum ist wirklich nützlich und es hat mir schon einige Male geholfen.
Jedoch habe ich für mein aktuelles Problem nur einen Beitrag gefunden (
http://www.delphipraxis.net/internal...t.php?t=135654) .
Mein Problem ist, dass ich die Namen von Komponenten, in meinem Fall Shapes, am liebsten variabel halten würde.
Ich habe zum Beispiel 30 verschiedene Shapes und möchte für jedes dieser Shapes die gleichen Anweisungen geben, z.B. dass jedes Shape bei einer Berührung mit einem andren die Richtung ändert(s. unten) .
Ich habe als Beispiel für die 30 Shapes erstmal nur Shape2 genommen.
In dem Quelltext unten wird geprüft ob das Shape2 die anderen an der rechten oder an der linken Seite berührt.
Die Anzahl der anderen wird durch die Variable Anzahl gezählt.
Es können bis zu 30 andere Shapes sichtbar sein, bei denen die Berührung überprüft werden muss.
Diese Shapes sind Shape52-Shape81 .
Das Programm zu starten klappt ohne Syntax, aber wenn ich den Button1 betätige,
kommt jedes Mal die Meldung Zugriffsverletzung beim Schreiben und dann stehen da noch einige Adressen.
Könnt ihr mir helfen, wie genau ich es schreiben muss mit Shape[i] ?
Das wär super.
Delphi-Quellcode:
[...]
private
Shape : Array of TShape ;
end;
VAR
Anzahl : Integer ;
[...]
procedure TForm1.Button1Click(Sender: TObject);
VAR
i : Integer ;
begin
FOR i := 52 TO Anzahl + 51 DO
begin
IF Shape2.Left = Shape[i].Left + Shape[i].Width
THEN
dx := 1 ; //Richtungsänderung des Shape2
IF Shape2.Left + Shape2.Width = Shape[i].Left
THEN
dx := -1 ; //Richtungsänderung des Shape2
end;
[edit=mkinzler]Delphi-Tag gefixt Mfg, mkinzler[/edit]