Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Zugriffsverletzung bei if in einer for-Schleife

  Alt 16. Mai 2006, 18:56
Delphi-Quellcode:
 TForm1 = class(TForm)
    Timer1: TTimer;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    Image8: TImage;
    Image9: TImage;
    Image10: TImage;
    Image11: TImage;
    Image12: TImage;
    Image13: TImage;
    Image14: TImage;
    Image15: TImage;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var I: Integer;
    Image: Array[1..13] of TImage;
begin
  for I := 0 to 12 do
    if (Image[I+1].Top = 96) and (Image[I+1].Left = 8) then Image[I+1].Top := 48
    else if (Image[I+1].Top = 48) and (Image[I+1].Left = 536) then Image[I+1].Top := 96
         else if (Image[I+1].Top = 96) and (Image[I+1].Left = 536) then Image[I+1].Top := 144
              else if (Image[I+1].Top = 144) and (Image[I+1].Left >= 9)then Image[I+1].Left := Image[I+1].Left - 8
                   else if (Image[I+1].Top = 144) and (Image[I+1].Left = 8) then Image[I+1].Top := 96
                        else Image[I+1].Left := Image[I+1].Left + 8;

end;
Dein Image1 aus der Interfacekonfiguration ist nicht gleich image[i+1] wenn i = 0.
Das mußt Du dann anders lösen, wenn ich mich recht erinnere geht das mit FindComponent,
aber da wissen andere besser drüber Bescheid.
Kannst Dir mal diesen Thread anschauen, ähnliches Problem wie Deines http://www.delphipraxis.net/internal...=findcomponent

Eine andere Möglichkeit ist, Du erstellst Dir die Images zur Laufzeit.
Dann kannst Du die Arraystruktur verwenden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat