Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Images mit Schleife durchlaufen (https://www.delphipraxis.net/116014-images-mit-schleife-durchlaufen.html)

Lucifer 21. Jun 2008 21:01


Images mit Schleife durchlaufen
 
Hallo


Ich wollte versuchen mit einer While Schleife durch 5 Bilder durchzugehen um nachzuschauen ob bereits ein Bild in der Image geladen wurde. Wenn eines geladen wurde dann geht er zum nächsten Image bis er eins gefunden hat welches noch kein Bild hatt und dann ein Bild reinladet.

Wie kann man die Variabel der Schleife so benutzen dass sie als Teil des Namens der Image wird.

Irgendwie sowas: Image+I

I ist dann die Variabel mit der Nummer des geraden Abgefragten Images

Matze 21. Jun 2008 21:02

Re: Images mit Schleife durchlaufen
 
Hallo!

Da hilft dir Delphi-Referenz durchsuchenFindComponent weiter, wenn du die TImage-Namen so vergibst, dass sie mit einer fortlaufenden Nummer versehen sind.

Grüße

DeddyH 21. Jun 2008 21:05

Re: Images mit Schleife durchlaufen
 
FindComponent in einer Schleife finde ich persönlich nicht so toll (nutzt intern auch eine Schleife, wenn ich den Source noch richtig in Erinnerung habe). Evtl. wäre es besser, ein Array of TImage zu definieren und zu belegen und dieses dann zu durchlaufen.

Matze 21. Jun 2008 21:08

Re: Images mit Schleife durchlaufen
 
Das ist natürlich schöner, da hast du recht. Nur muss natürlich ein wenig am Code verändert und unter Umständen die TImages dynamisch erzeugt werden.

DeddyH 21. Jun 2008 21:09

Re: Images mit Schleife durchlaufen
 
Wenn die Images eh schon auf der Form liegen, muss man sie ja nicht dynamisch erzeugen.

Lucifer 21. Jun 2008 21:20

Re: Images mit Schleife durchlaufen
 
naya leider bin ich nicht soweit um sowas zu können...

Sons hätte ich eine andere Idee:

Wie kann man überprüfen ob in einer Image ein Bild geladen ist?

Matze 21. Jun 2008 21:22

Re: Images mit Schleife durchlaufen
 
Also an deiner Stelle würde ich's vorerst so in der Art machen:

Delphi-Quellcode:
for i := 1 to 5 do
begin
  if (FindComponent('Image' + IntToStr(i)) as TImage).Picture <> nil then
  begin
    // Bild vorhanden (falls man es so überprüfen kann, da bin ich mir nicht ganz sicher)
  end;
end;
Folgendes müsste übrigens auch gehen:

Delphi-Quellcode:
if TImage(FindComponent('Image' + IntToStr(i))).Picture <> nil
Wenn du dann einmal mehr Wissen hast bzw. Lust, es dir anzueignen, kannst du immer noch Deddys Lösung umsetzen. ;)

Grüße

Lucifer 21. Jun 2008 21:36

Re: Images mit Schleife durchlaufen
 
OK hat erstmals bisschen funktioniert aber nicht ganz.

Delphi-Quellcode:
 
        if(frmMonster.imgItem1.Picture = nil)then
        begin
          frmMonster.imgItem1.Picture.LoadFromFile(ItemsDir+'white_potion.bmp');
        end
        else if(frmMonster.imgItem2.Picture = nil)then
        begin
          frmMonster.imgItem2.Picture.LoadFromFile(ItemsDir+'white_potion.bmp');
        end
        else if(frmMonster.imgItem3.Picture = nil)then
        begin
            frmMonster.imgItem3.Picture.LoadFromFile(ItemsDir+'white_potion.bmp');
        end
Dies scheint irgendwie nicht zu funktionieren, ich weis nicht weshalb...

Matze 21. Jun 2008 21:40

Re: Images mit Schleife durchlaufen
 
Hm, vielleicht war's auch Image.Picture.Graphic <> nil

Aber das Thema gab's sicher schonmal: [dp]TImage überprüfen[/dp]

Lucifer 21. Jun 2008 21:44

Re: Images mit Schleife durchlaufen
 
es war Picture.Graphic = nil ^^
Vielen dank funktioniert nun alles wie es soll.

Meine Art wird nur bisschen grösser aber solange es geht bin ich zufrieden. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr.
Seite 1 von 2  1 2      

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