![]() |
Variable mit Variable
ich komme mir im Moment selten blöd vor weil ich das auch schon gemacht habe, aber nicht mehr dahinter komme, wie.
Ich habe etwa 12 Image-Komponenten auf einer Form, schön mit Image1 bis Image12 benannt. Nun soll eine for x:= 1 to 12 - Schlaufe die Pictures dieser Images abfüllen. Wie um Himmels Willen spreche ich in der Schlaufe die Images an? Irgendwie mit Image + IntToStr(X) aber wie gesagt, ich steh auf dem Schlauch. |
AW: Variable mit Variable
Hallo,
Du musst "FindComponent" benutzen. Alternativ kannst du auch ein Array of TImage machen und diese da rein schreiben und dann über den Array-Index darauf zugreifen. |
AW: Variable mit Variable
Quick and Dirty:
Delphi-Quellcode:
Sauberer wäre es aber IMO, ein eigenes Array oder eine Liste zu deklarieren und einmalig mit den Images zu befüllen. Dann kannst Du die Images auch umbenennen.
var
i: integer; img: TImage; begin for i := 1 to 12 do begin img := FindComponent('Image' + IntToStr(i)); if Assigned(img) then //mach was mit dem Image end; end; [edit] *Pfh*, wozu tipp ich eigentlich? [/edit] |
AW: Variable mit Variable
Zitat:
Aber umbenennen könnte man die "schön" benannten Image* bestimmt dennoch. :stupid: |
AW: Variable mit Variable
Mit etwas Glück sollte das hier auch möglich sein
Delphi-Quellcode:
function getNextImage(): TImage;
begin Result := TImage(Random($FFFFFFFF)); end; |
AW: Variable mit Variable
Danke für Eure Antworten, aber leider funktioniert alles nicht.
Die 'Glücksvariante' von Aphton gibt eine Excpetion. Und die Quick und Dirty-Lösung von DeddyH geht schon beim Compilieren mit XE2 in die Hose. Ich habe die Image wie empfohlen umgetauft. Die heissen nun 'Bild1' bis 'Bild12'.
Code:
Das liefert einen Compiler-Fehler auf der Zeile img := FindComponent('Bild' + IntToStr(x)); E2010 Inkompatible Typen: 'TImage' und 'TComponent'
procedure TFPDFHandler.Button1Click(Sender: TObject);
var x : integer; var img : TImage; begin for x := 1 to BMPFiles.Count do begin BMP := TBitmap.Create; BMPFiles.ItemIndex := X -1; BMP.LoadFromFile(BMPFiles.FileName); BMP.PixelFormat := pf8bit; img := FindComponent('Bild' + IntToStr(x)); if assigned(img) then img.picture.Bitmap := BMP; BMP.Free; end; end; Die Lösung: TImage(FindComponent('Bild' + IntToStr(x))).Picture.Bitmap := BMP; |
AW: Variable mit Variable
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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 by Thomas Breitkreuz