Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrere Objekte in einer Schleife erzeugen (https://www.delphipraxis.net/3899-mehrere-objekte-einer-schleife-erzeugen.html)

Touchdown 5. Apr 2003 18:20

Probleme beim Zugriff auf ein Objektes in der Liste?

Könnte so aussehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  liste : Tobjectlist;
  i : integer;
  AktuellesLVL : TLVL12;
begin
  for i := 0 to liste.Count -1 do
  begin
    AktuellesLVL := liste[i];
    if AktuellesLVL is TLVL12 then
    begin
      //
    end;
  end;
end;
Man könnte auch eine kleine Objektliste-Klasse bauen und eine eigene Get-Methode coden, aber das führt wohl zu weit.

Kuehter 15. Okt 2014 10:22

AW: Mehrere Objekte in einer Schleife erzeugen
 
noch eine weitere frage
Ich habe von TImage 27 Objekte und das
Delphi-Quellcode:
   for counter := 0 to 2 do
   begin
      case saferend[counter] of
          0: Image1.Picture.Assign(Caller[0]);
          1: Image1.Picture.Assign(Caller[1]);
          2: Image1.Picture.Assign(Caller[2]);
          3: Image1.Picture.Assign(Caller[3]);
          4: Image1.Picture.Assign(Caller[4]);
          5: Image1.Picture.Assign(Caller[5]);
          6: Image1.Picture.Assign(Caller[6]);
          7: Image1.Picture.Assign(Caller[7]);
          8: Image1.Picture.Assign(Caller[8]);
          9: Image1.Picture.Assign(Caller[9]);
          else
          end;
so aufzuschreiben 27 mal scheint mir doch sehr unelegant:oops:

gäbe es eine möglichkeit alle 27 objekte per forschleife oder ähnliches aufzurufen?

mkinzler 15. Okt 2014 10:28

AW: Mehrere Objekte in einer Schleife erzeugen
 
Kommen Werte < 0 oder > 9 vor?

Delphi-Quellcode:
for counter := 0 to 2 do
begin
    Image1.Picture.Assign(Caller[saferend[counter]]);

Kuehter 15. Okt 2014 10:29

AW: Mehrere Objekte in einer Schleife erzeugen
 
ne kommen sie nicht
jedoch ist das problem so wie das bei dir steht die werte sind ja größer als 3 und mit geht es nur darum das ich nicht immer Image?.Picture.Assign Schreiben muss sonder das auslagern kann

DeddyH 15. Okt 2014 10:30

AW: Mehrere Objekte in einer Schleife erzeugen
 
Man darf hier übrigens gern auch eigene Threads eröffnen und muss keine 11 Jahre alten kapern.

Kuehter 15. Okt 2014 10:33

AW: Mehrere Objekte in einer Schleife erzeugen
 
ich sag dir ganz erhlich ich habe mich nicht damit auseinander gesetzt wie man hier threads eröffnet :D

mkinzler 15. Okt 2014 10:48

AW: Mehrere Objekte in einer Schleife erzeugen
 
Zitat:

Zitat von Kuehter (Beitrag 1275979)
ich sag dir ganz erhlich ich habe mich nicht damit auseinander gesetzt wie man hier threads eröffnet :D

Solltest Du aber.

himitsu 15. Okt 2014 12:18

AW: Mehrere Objekte in einer Schleife erzeugen
 
Zitat:

Zitat von mkinzler (Beitrag 1275975)
Kommen Werte < 0 oder > 9 vor?

Du meinst wohl 26. :zwinker:
Zitat:

Zitat von Kuehter (Beitrag 1275974)
Ich habe von TImage 27 Objekte und das

Kann man aber über ein IF gut abfangen.
Delphi-Quellcode:
for counter := 0 to 2 do
  if Caller[saferend[counter]] in [0..26] then // oder so ähnlich
    Image1.Picture.Assign(Caller[saferend[counter]])
  //else
    ;



PS: Falls jemand demnächst mit 100 Objekten ankommt, findet er hier gleich die neue/erweiterte Antwort.

Blup 15. Okt 2014 15:44

AW: Mehrere Objekte in einer Schleife erzeugen
 
Ich vermute hier soll eher das Image selbst variabel sein:
Delphi-Quellcode:
function TMyForm2.GetImage(AIndex: Integer): TImage;
begin
  Result := FindComponent('Image' + IntToStr(AIndex)) as TImage;
  Assert(Assigned(Result), 'Image' + IntToStr(AIndex) + ' nicht gefunden');
end;

Dejan Vu 15. Okt 2014 16:30

AW: Mehrere Objekte in einer Schleife erzeugen
 
Bei 'FindComponent' hast Du das Problem, das beim Umbenennen einer Komponente diese nicht mehr gefunden wird, daher: Finger weg und ab mit den Images in eine Liste bzw ein Array Of TImage.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 Uhr.
Seite 2 von 3     12 3      

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