![]() |
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 |
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
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
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?? |
Re: Arrays und for-Schleifen
Zitat:
|
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... |
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; |
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.
|
Re: Arrays und for-Schleifen
Nichtsdestotrotz fehlt bei Dir oben noch eine öffnende Klammer ;)
Du hast drei schließende, aber nur zwei öffnende Klammern. |
Re: Arrays und for-Schleifen
Stimmt. Aber wen er den Code verstanden hätte, hätte er schnell gefunden, wo sie fehlt.
|
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; |
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; ... |
Re: Arrays und for-Schleifen
Aber irgendwie löscht er den Inhalt der Bilder nicht :cry:
|
Re: Arrays und for-Schleifen
Wie solle er auch? Du setzt auch nur Referenzen(Zeiger) auf Nil.
|
Re: Arrays und for-Schleifen
und wie mache ich das jetzt??
|
Re: Arrays und for-Schleifen
Delphi-Quellcode:
for h := 1 to 48 do begin
(FindComponent('I_'+IntToStr(i)) as TImage).Picture := Nil; end; |
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?? :?: |
Re: Arrays und for-Schleifen
Was meinst du mit geht nicht?
|
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