Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi For j:= 1 to 2 do.....(Pro Zahl ein Ziel) (https://www.delphipraxis.net/9732-j-%3D-1-2-do-pro-zahl-ein-ziel.html)

ISAS 2. Okt 2003 16:36


For j:= 1 to 2 do.....(Pro Zahl ein Ziel)
 
So, hier der Quelltext:

Delphi-Quellcode:
var
j:integer;

(Timer):

for j:= 1 to 2 do
begin

Ziel(1).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
Ziel(2).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
end;
Ziel(1) erhält nun das Picture von Image(1) und sofort darauf das von Image(2). Das gleiche passiert mit Ziel(2). Also haben beide Images dasselbe Bild. Das Problem ist nur, das ich das nicht will.

Ziel(1) soll das Image(1) als Picture haben und Ziel(2) soll das Image(2) als Ziel haben.

Wenn sich jemand nun fragt :gruebel: , wieso ich nicht einfach Image(1) und Image(2) eintippe, statt wie oben angegeben. Das würde ich auch tun, wenn es sich später nicht um Hunderte handeln würde.
Ich arbeite an einem Rollenspiel und bin noch in der Probephase. Es würde mir nichts nützen, wenn ich schon jetzt anfieng, ein richtiges Spiel zu programmieren, wenn nicht zwischendurch solche Sachen kommen würden. Deshalb teste ich vorher alles und programmier erst das ganze Spiel, wenn auch jede Kleinigkeit funktioniert.

Sonst wäre die Lösung einfach :coder: .

[edit=sakura]Delphi-Tags. Mfg, sakura[/edit]

Matze 2. Okt 2003 16:41

Re: For j:= 1 to 2 do.....(Pro Zahl ein Ziel)
 
mach's doch so:
Delphi-Quellcode:
inc(j);

case j of
1: Image1.Picture... ;
2: Image2.Picture... ;

S - tefano 2. Okt 2003 16:44

Re: For j:= 1 to 2 do.....(Pro Zahl ein Ziel)
 
Hi,

anstatt
Delphi-Quellcode:
Ziel(1).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
Ziel(2).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
würde ich eher das machen:
Delphi-Quellcode:
Ziel(j).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
Sonst weißt du nämlich auch im zweiten Schleifendurchlauf dem ersten Ziel das Bild mit der Nummer j zu.
Jedenfalls wenn ich das richtig verstanden hab...

Bis dann,

S - tefano

[EDIT]
Hm, habs wohl doch falsch verstanden, jetz wo ich nochmal nachles. Ich find Matzes Vorschlag besser ;-)
[/EDIT]

ISAS 2. Okt 2003 17:00

Re: For j:= 1 to 2 do.....(Pro Zahl ein Ziel)
 
Thnx für die 1. und 2. Antwort. Dann gehts noch leichter.

PS: Obwohl das peinlich ist :pale: , dass ich das nicht wusste :?: , muss ich nur eine Verbesserung durchführen :coder: :

Delphi-Quellcode:
(Findcomponent('Ziel'+inttostr(j))as TImage).Picture:=
(Findcomponent('Image'+inttostr(j))as TImage).Picture;
Sonst funkts nicht, weil er Ziel(j) nicht erkennt (Ist ja nur für Anfänger, zu denen ich auch gehöre :( . Ich hatte erst 1 Schuljahr jede Woche 2 Stunden Delphi und in der Schule lern man nur allgeime Sachen, welche aber auch sehr wichtig sind.
Danke :thuimb:

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]

Phoenix 2. Okt 2003 17:59

Re: For j:= 1 to 2 do.....(Pro Zahl ein Ziel)
 
:wiejetzt:

Wenn Du in Deinem ersten Post schreibst:

Delphi-Quellcode:
for j:= 1 to 2 do
begin
   Ziel(1).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
   Ziel(2).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
end;
Dann muss auch:
Delphi-Quellcode:
for j:= 1 to 2 do
   Ziel(j).picture:=(Findcomponent('Image'+inttostr(j))as TImage).Picture;
funktionieren.

Alles andere würde nicht wirklich viel Sinn machen bzw. mich arg verdutzt stehen lassen. Den Gegenbeweis musst Du erst antreten :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz