Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Arrays und for-Schleifen (https://www.delphipraxis.net/110925-arrays-und-schleifen.html)

juLiii 26. Mär 2008 21:16


Arrays und for-Schleifen
 
wenn ich ein Array habe und ihn mit bildern kombinieren möchte - so dass ich alle bilder ohne viele zeilen zu schreiben zu löschen was muss ich dann ändern??


Bilder : Array[1..48] of String; :arrow: hier
h : Integer;

begin

Bilder[1] := I_1.Picture;
Bilder[2] := I_2.Picture;
Bilder[3] := I_3.Picture;
Bilder[4] := I_4.Picture;
Bilder[5] := I_5.Picture;
Bilder[6] := I_6.Picture;
...

for h := 1 to 48 do begin
Bilder[h] := nil; :arrow: so, dass ich hier den inhalt aller bilder lösche
end;

juLiii

mkinzler 26. Mär 2008 21:27

Re: Arrays und for-Schleifen
 
Delphi-Quellcode:
for h := 1 to 48 do
begin
    Bilder[i] := FindComponent('I_'+IntToStr(i)) as TImage).Picture;
end;

DP-Maintenance 27. Mär 2008 06:32

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

juLiii 27. Mär 2008 10:18

Re: Arrays und for-Schleifen
 
irgendwie stimmt do wos mit de klammern ned - 1 zu viel oda zu wenig
soid i donn oben bei array of string so lossn??

toms 27. Mär 2008 10:22

Re: Arrays und for-Schleifen
 
Zitat:

Zitat von juLiii
irgendwie stimmt do wos mit de klammern ned - 1 zu viel oda zu wenig
soid i donn oben bei array of string so lossn??

Könntest du dies nochmals in deutscher Sprache formulieren ?

juLiii 27. Mär 2008 10:25

Re: Arrays und for-Schleifen
 
also: bei deiner Antwort auf meine Frage hast du Klammern gesetzt - bei denen eine zu viel oder zu wenig gesetzt wurde
was stimmt also nicht??

und Frage 2: Bilder : Array[1..48] of String; - soll ich hier das Wort String lassen oder ein anderes einfügen?? wie zum Beispiel Integer oder ähnliche...

Die Muhkuh 27. Mär 2008 10:30

Re: Arrays und for-Schleifen
 
Ausgehend von Markus' Vorschlag:

Delphi-Quellcode:
Bilder : Array[1..48] of TPicture; { oder TBitMap, TGraphic, ...}

for h := 1 to 48 do
begin
    Bilder[i] := (FindComponent('I_'+IntToStr(i)) as TImage).Picture;
end;

mkinzler 27. Mär 2008 10:36

Re: Arrays und for-Schleifen
 
Das mit dem String-Array hab ich übersehen. Bin dvon ausgegangen dass es sich schon um den richtigen Typ handelt.

Die Muhkuh 27. Mär 2008 10:37

Re: Arrays und for-Schleifen
 
Nichtsdestotrotz fehlt bei Dir oben noch eine öffnende Klammer ;)

Du hast drei schließende, aber nur zwei öffnende Klammern.

mkinzler 27. Mär 2008 10:39

Re: Arrays und for-Schleifen
 
Stimmt. Aber wen er den Code verstanden hätte, hätte er schnell gefunden, wo sie fehlt.

juLiii 27. Mär 2008 11:09

Re: Arrays und for-Schleifen
 
:? OK also ich hab meinen Code jetzt so geschrieben wie du ihn vorgeschlagen hast - aber irgendwie löscht er keinen einzigen Inhalt meiner Bilder??
was mache ich falsch?? -- was wäre zumm Beispiel mit dem Befehl: Bilder[h] := nil;
-- ich arbeite in diesem Programm mit Drag&Drop - könnte das ein Problem sein??

procedure TForm6.I_JouerClick(Sender: TObject);
var
i : Integer;
gefunden : Integer;
Setzen : Array[1..48] of Integer;
Zahlen : Array[1..36] of Integer;
Bilder : Array[1..48] of TPicture;
g : Integer;
h : Integer;

begin

Bilder[1] := I_1.Picture;
Bilder[2] := I_2.Picture;
Bilder[3] := I_3.Picture;
Bilder[4] := I_4.Picture;
Bilder[5] := I_5.Picture;
Bilder[6] := I_6.Picture;
Bilder[7] := I_7.Picture;
Bilder[8] := I_8.Picture;
Bilder[9] := I_9.Picture;
...
Bilder[36] := I_36.Picture;
Bilder[37] := I_Pair.Picture;
Bilder[38] := I_Impair.Picture;
Bilder[39] := I_Rouge.Picture;
Bilder[40] := I_Noir.Picture;
Bilder[41] := I_Passe.Picture;
Bilder[42] := I_Manque.Picture;
Bilder[43] := I_P.Picture;
Bilder[44] := I_M.Picture;
Bilder[45] := I_D.Picture;
Bilder[46] := I_1er12.Picture;
Bilder[47] := I_2e12.Picture;
Bilder[48] := I_3e12.Picture;

for h := 1 to 48 do begin
Bilder[h] := (FindComponent('I_'+IntToStr(i)) as TImage).Picture;

end;
end;

mkinzler 27. Mär 2008 11:12

Re: Arrays und for-Schleifen
 
Natürlich nicht. Er ersetzt ja das manuelle Zuweisen

Delphi-Quellcode:
Bilder[1] := I_1.Picture;
Bilder[2] := I_2.Picture;
Bilder[3] := I_3.Picture;
...

juLiii 27. Mär 2008 11:19

Re: Arrays und for-Schleifen
 
Aber irgendwie löscht er den Inhalt der Bilder nicht :cry:

mkinzler 27. Mär 2008 11:23

Re: Arrays und for-Schleifen
 
Wie solle er auch? Du setzt auch nur Referenzen(Zeiger) auf Nil.

juLiii 27. Mär 2008 11:26

Re: Arrays und for-Schleifen
 
und wie mache ich das jetzt??

mkinzler 27. Mär 2008 11:29

Re: Arrays und for-Schleifen
 
Delphi-Quellcode:
for h := 1 to 48 do begin
   (FindComponent('I_'+IntToStr(i)) as TImage).Picture := Nil;
end;

juLiii 29. Mär 2008 10:22

Re: Arrays und for-Schleifen
 
also: dieses mal geht es darum Tags aus Bildern wieder auf die Zahl null zu bringen:

Zahlen : Array[1..36] of Integer;
i : Integer;

Setzen[1] := I_1.Tag;
Setzen[2] := I_2.Tag;
Setzen[3] := I_3.Tag;
Setzen[4] := I_4.Tag;
Setzen[5] := I_5.Tag;
Setzen[6] := I_6.Tag;
Setzen[7] := I_7.Tag;
Setzen[8] := I_8.Tag;
Setzen[9] := I_9.Tag;
...

for i := 1 to 36 do begin
Zahlen[i] := 0;
end;

Warum funktioniert es nicht?? :?:

mkinzler 29. Mär 2008 10:28

Re: Arrays und for-Schleifen
 
Was meinst du mit geht nicht?

Fussball-Robby 29. Mär 2008 10:33

Re: Arrays und for-Schleifen
 
Wieder das gleiche Problem wie vorher: Du speicherst wahrscheinlich den Wert der Tags im Array, änderst die Werte des Arrays und weist diese geänderten Werte nicht zu. In dem Post vor deinem wurde aber eigentlich schon perfekt gezeigt, wie du das machen musst.

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 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