![]() |
index wird ohne aufruf auf 0 gesetzt
ich habe hier eine Methoe schauenundhinzufuegen()
bevor ich in die schleife " For i := 0 to index-1 do" komme ... ist der idnex schon auf 0 ... obwohl er vorher fuenf oder hoeher war - es kann nur in diesem codesegment passiert sein : bitte kann mir wer helfen den Fehler zu finden? (ich habe schon durchgestept)
Delphi-Quellcode:
danke
procedure SchauenUnsHinzufuegen();
var i : Integer; theimg : TImage; begin for i := 0 to Length(SelList) do SelList[i] := nil; theimg := TImage.Create(Form1); For i := 0 to index-1 do begin theimg := TImage(Form1.FindComponent('Soldier_' + IntToStr(i))); if (theimg.Left >= Auswahlrec.Left) then if (theimg.left + theimg.width > Auswahlrec.Right) then if (theimg.top >= Auswahlrec.Top) then if (theimg.Top + theimg.Width > Auswahlrec.Bottom) then begin selList[i] := theimg; theimg.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+ '\Bilder\standSel.bmp'); end; //Form1.caption := Form1.caption + ' + Soldier' + IntToStr(i); end; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin z := false; Form1.Canvas.Refresh; Form1.Canvas.Draw(0,0,zurueck); Auswahlrec := Rect(Min(X,X), Min(Y,Y), Max(XX,XX), Max(YY, YY)); SchauenUnsHinzufuegen(); Form1.Repaint; end; Mooreel |
Re: index wird ohne aufruf auf 0 gesetzt
Wo ist index deklariert?
|
Re: index wird ohne aufruf auf 0 gesetzt
globale variable, wirt mit 0 initialisiert - on bei jedem Onmousedown um 1 erhöht
|
Re: index wird ohne aufruf auf 0 gesetzt
Delphi-Quellcode:
for i := 0 to Length(SelList) do
SelList[i] := nil; // Hiernach ist i undefiniert - wie immer bei Schleifenvariablen nach einer Schleife. // Würdest du nachher etwas wie variable := i; // scheiben, mekert der Compiler auch genau das an ;) theimg := TImage.Create(Form1); For i := 0 to index-1 do begin Schönen Gruss, Fabian |
Re: index wird ohne aufruf auf 0 gesetzt
index <> i ;)
Delphi-Quellcode:
index, index2 : Integer;
|
Re: index wird ohne aufruf auf 0 gesetzt
:gruebel:
aber i hat doch mit index nix zu tun? |
Re: index wird ohne aufruf auf 0 gesetzt
ja sag ich doch ?
index kommt nur 2 mal vor und zwar beim initialisieren und beim raufzählen .. wies auf 0 gesetzt wird kann ich nicht nachvollziehen. |
Re: index wird ohne aufruf auf 0 gesetzt
:wall: Wenn man nicht gaaanz genau liest... sorry.
Ich vermute mal du hast irgendwo ein Array, und die Bereichsprüfung aus, und jagst irgendwo über die Arraygrenze hinweg, und erwischt zufällig "index". Ist vor der Deklaration von "index" evtl. sogar ein Array deklariert? Dann wäre es nämlich sehr sehr wahrscheinlich {edit: anderenfalls aber auch nicht unwahrscheinlich}. Bereichsüberschreitungen sind immer wieder gerne für solche Effekte gut :) |
Re: index wird ohne aufruf auf 0 gesetzt
Sind evtl. noch andere Variablen / Properties mit dem gleichen Namen irgendwo deklariert? Ich vermute, dass hier auf einen andere Variable als gedacht zugegriffen wird.
|
Re: index wird ohne aufruf auf 0 gesetzt
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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