AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Images mit Schleife durchlaufen

Ein Thema von Lucifer · begonnen am 21. Jun 2008 · letzter Beitrag vom 21. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#1

Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:01
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
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:02
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:05
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:08
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:09
Wenn die Images eh schon auf der Form liegen, muss man sie ja nicht dynamisch erzeugen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#6

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:20
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?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:22
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:

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
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#8

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:36
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...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:40
Hm, vielleicht war's auch Image.Picture.Graphic <> nil

Aber das Thema gab's sicher schonmal: Hier im Forum suchenTImage überprüfen
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#10

Re: Images mit Schleife durchlaufen

  Alt 21. Jun 2008, 21:44
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr.
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