![]() |
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:
|
Re: index wird ohne aufruf auf 0 gesetzt
Moin Nicodius,
benenne die Variable mal um (z.B. iIndex). Index ist ja auch eine Eigenschaft von Objekten. Wo ist index deklariert? In einer Unit eines Formulares, dass immer neu erzeugt wird? |
Re: index wird ohne aufruf auf 0 gesetzt
Hallo,
zur weiteren Erläuterung: "index" ist eine Direktive, eventuell deshalb. :?: Aus der Delphi-Hilfe: Zitat:
|
Re: index wird ohne aufruf auf 0 gesetzt
Ja ! Genau so !! Variable umbenennen und sehen wo der Compiler hängen bleibt. Da liegt dann der Hu´nd begraben. Das geht wohl am schnellsten. 8) Alternativ : F7/F8
|
Re: index wird ohne aufruf auf 0 gesetzt
das gleiche wie vorher
Delphi-Quellcode:
var
Form1: TForm1; iindex, iindex2 : Integer; da werden die globalen definiert
Delphi-Quellcode:
heir initialisiert
procedure TForm1.FormCreate(Sender: TObject);
begin selected := TImage.Create(Form1); zurueck := TBitmap.Create; zurueck := Canvas.Brush.Bitmap; iindex := 0; iindex2 := 0; Image2.Picture.Bitmap.TransparentColor := clwhite; actBuild := -1; end; |
Re: index wird ohne aufruf auf 0 gesetzt
Moin!
Zitat:
MfG Muetze1 |
Re: index wird ohne aufruf auf 0 gesetzt
danke muetze!!!
dass wars - ja ich weiß muss das alles wieder einschalten was mich jetz taber interessieren würde - inwiefern hat dieser Fehler einfluss auf die variable iindex?# danke vielmals Nico |
Re: index wird ohne aufruf auf 0 gesetzt
Moin Nico,
vermutlich ist einfach der Speicherbereich dieser Variablen überschrieben worden, so dass sie den Wert 0 erhielt. |
Re: index wird ohne aufruf auf 0 gesetzt
danke :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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