![]() |
Objekte und Variablen nummeriet verwenden
Also ich hab hier ein hoffentlich leicht zu lösendes Problem:
ich will, dass der mit mehreren objekten inherhalb einer zählschleife was gemacht wird. also
Delphi-Quellcode:
oder irgend sowas nun die frage: wie krig ich die Zählvariable in das objekt rein?
image1.left:=image1.left+5
image2.left:=image2.left+5 image3.left:=image3.left+5 das ganze mit variablen wäre auch ganz praktisch also a1,a2,a3,a4, ... alle um das gleiche verändern [edit=SirThornberry]Delphi-Tags gesetzt, doppelte Buchstaben im Titel entfernt, Buchstabendreher berichtigt und Leerzeichen im Titel gesetzt - nächstes mal bitte die Zeit nehmen nochmal zu schauen was du getippt hast!! Mfg, SirThornberry[/edit] |
Re: Obbjekteund variabeln nummerieet verwenden
Hallo,
dazu musst du deine Objekte einfach in ein array packen:
Delphi-Quellcode:
Zuweisung so:
var
Images: array[0..4] of TImage; //statisches array ImagesO: array of TImage //dynamisches array
Delphi-Quellcode:
Die Deklaration packst du am besten in den private-abschnitt deiner formdeklaration und weist die werte im OnCreate zu.
//statisch
Images[0] := Image1; //dynamisch SetLength(ImagesO, 1); Images[0] := Image1; |
Re: Obbjekteund variabeln nummerieet verwenden
das mit den arrays hatte ich auch schon, aber muss man da nicht trotzdem wieder jedes Bild zuweisen?
also bildarray[1]:=Image1.left; bildarray[2]:=Image2.left; ... könnta man das nicht irgendwie so:
Delphi-Quellcode:
das problem ist nur, dass ich das Image nicht mit der variablen verbinden kann, also das oben gezeigte geht so ni. :coder2:
for k:=1 to 30 do
begin bildarray[k]:=Image[k].left; end; |
Re: Obbjekteund variabeln nummerieet verwenden
Bei DGL-Luke ist Images ein array of TImage. Wenn ich Dich richtig verstanden habe, gilt das auch für Dein bildarray. Dann darfst/kannst Du einem Element doch keine Zahl zuweisen (bei Deinem Versuch left). Folgendes ist dann möglich:
Delphi-Quellcode:
oder was auch immer Du machen willst.
// Zuweisen eines Bildes; das muss "am Anfang" gemacht werden
Images[0] := Image1; // Zuweisen der Eigenschaft left Images[1].Left := 344; // oder Images[1].Left := Images[1].Left + 5; Gruß Jürgen |
Re: Objekte und Variablen nummeriet verwenden
Ich denke das Stichwort ist wie so oft: FindComponents
Delphi-Quellcode:
var Img : TComponent; i : LongInt; begin for i := 1 to AnzahlImage do begin Img := FindComponent('Image' + IntToStr(i)); (Img as TImage).Left := (Img as TImage).Left + 10; end; end; |
Re: Objekte und Variablen nummeriet verwenden
Wah nein, das ist das Stichwort für "wie mache ich es nicht?"!
Delphi-Quellcode:
Was heißt da das geht so nicht? nix da!
for k:=1 to 30 do
begin bildarray[k]:=Image[k].left; end; Einmal ins formcreate reingepackt:
Delphi-Quellcode:
Und schon kann man durch seine Images durchiterieren wie man will.
SetLength(Images,5);
Images[0] := Image1; Images[1] := Image2; Images[2] := Image3; Images[3] := Image4; Images[4] := Image5; FindComponent mach ich erst, wenns über 100 Images sind - die werden dann aber eh dynamisch erzeugt und das Problem stellt sich erst gar nicht, weil sie dann gleich ins Array kommen! :warn: |
Re: Objekte und Variablen nummeriet verwenden
Jo, also DANKE für eure Lösungen.
Ich werds erstma mit dem FindComponent probieren, bin ja noch in der Grundlagenforschung, dann mach ich auch mal das andere, fallst es weitere Fregen gibt nerv ich wieder :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 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