![]() |
Problem mit Variablen bei for-Schleife
Ich habe ein Problem mit den Variablen bei der for-Schleife. Ich hab ne for-Schleife gemacht, damit ich nicht alle Images extra eingeben muss. Es kommt aber beim compilieren des folgenden Sorce der Fehler: Undefinierter Bezeichner 'Image'
Delphi-Quellcode:
Ist bestimmt wieder so eine Kleinigkeit, aber ich bin nicht drauf gekommen :wall: . Ihr Profis wisst bestimmt ne Lösung, wie immer :thuimb: .
for i := 1 to 34 do begin
if (X >= Image(i).Left) and (X <= Image(i).Left+Image(i).Width ) and (Y >= Image(i).Top ) and (Y <= Image(i).Top +Image(i).Height) then label1.Caption := 'JIIIHA' else label1.Caption := 'RAMSIIIM' ; end; end; |
Re: Problem mit Variablen bei for-Schleife
|
Re: Problem mit Variablen bei for-Schleife
Du kannst mit Image(i) wenn i = 1 nicht auf Image1 zugreifen. Die Lösung wären in Deinem Fall die Nutzung von [dp]Array*[/dp]s.
...:cat:... |
Re: Problem mit Variablen bei for-Schleife
Na das Problem liegt nicht bei der Schleife, sondern die Varible "Image" ist nicht bekannt,
entweder hast du vergessen sie in der Funktion zu deklarieren, oder global nicht deklariert, oder vielleicht soll es auch Form1.Image.... heißen, guck mal nochmal. [Edit] Sorry, war zu spät, die anderen haben recht [/Edit] Czapie. |
Re: Problem mit Variablen bei for-Schleife
Aber auch nur das wird ihm nicht helfen.
|
Re: Problem mit Variablen bei for-Schleife
Okay ich habs jetzt mal mit der Findcomponent-Methode versucht...Jetzt tritt der Fehler Inkompatible Typen: 'Integer' und 'TImage' auf. Es wird wahrscheinlich mit dem +'.Left' zutun haben...Hier der source:
Delphi-Quellcode:
Bitte wieder um Hilfe und danke an Lukie für den Tipp mit Findcomponent :thuimb:
procedure TForm1.imgBackroundMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i, j : integer ; begin for i := 1 to 34 do begin j := (findcomponent('Image'+inttostr(i)+'.Left') as TImage) ; if X >= j // if (X >= Image(i).Left) and (X <= Image(i).Left+Image(i).Width ) and // (Y >= Image(i).Top ) and (Y <= Image(i).Top +Image(i).Height) then label1.Caption := 'JIIIHA' else label1.Caption := 'RAMSIIIM' ; end; end; |
Re: Problem mit Variablen bei for-Schleife
Delphi-Quellcode:
So müsste es gehen...
procedure TForm1.imgBackroundMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i, j : integer ; begin for i := 1 to 34 do begin j := (findcomponent('Image'+inttostr(i)) as TImage).Left; if X >= j // if (X >= Image(i).Left) and (X <= Image(i).Left+Image(i).Width ) and // (Y >= Image(i).Top ) and (Y <= Image(i).Top +Image(i).Height) then label1.Caption := 'JIIIHA' else label1.Caption := 'RAMSIIIM' ; end; end; Du darfst Left nicht in FindComponent reintun :wink: |
Re: Problem mit Variablen bei for-Schleife
Mh,
lass mal das .left im Argument für findcomponent weg, und hole dir den Wert erst danach wenn du die Kompo hast. Image.Left ist eine Eigenschaft von TImage vom Datentyp Integer. Definier also eine Variable vom Typ TImage -> Findcomponent -> Varible.Left . [Edit] Verdammt, bin ich heut langsam[/Edit] Czapie. |
Re: Problem mit Variablen bei for-Schleife
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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