AGB  ·  Datenschutz  ·  Impressum  







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

Timages Ladezeiten

Ein Thema von Behemoph · begonnen am 19. Mai 2010 · letzter Beitrag vom 21. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
Behemoph

Registriert seit: 6. Aug 2009
12 Beiträge
 
#1

Timages Ladezeiten

  Alt 19. Mai 2010, 22:16
Hallöchen Leute,
ich bräuchte dringend eure Hilfe :>

Mein Problem ist das folgende:

Und zwar möchte ich gerne jede Sekunde, nach einiger Zeit sogar in noch kleineren Intervallen, die Bilder von 55 dynamischen TImages gleichzeitig ändern.
Meine Überlegungen waren folgende:

Delphi-Quellcode:
for i:= 1 to 55 do
  begin
    if animation[i]=true then
    begin
      if i <= 11 then a[i].picture.loadfromfile('Bilder\invader1.jpg') else
       if i <= 33 then a[i].picture.loadfromfile('Bilder\invader5.jpg') else
        if i <= 55 then a[i].picture.loadfromfile('Bilder\invader3.jpg');
      animation[i]:=false;
    end else
    begin
      if i <= 11 then a[i].picture.loadfromfile('Bilder\invader2.jpg') else
       if i <= 33 then a[i].picture.loadfromfile('Bilder\invader6.jpg') else
        if i <= 55 then a[i].picture.loadfromfile('Bilder\invader4.jpg');
      animation[i]:=true;
    end;
  end;

Das funktioniert zwar, jedoch bleibt die gesamte Anwendung, beim Laden der Bilder, für den Bruchteil einer Sekunde stehen, was sehr unschön ist :/
Könnt ihr mir verraten, wie ich die Ladezeiten verkürzen kann? Oder das Problem vielleicht ganz anders lösen kann?

mfg Behemoph
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

Re: Timages Ladezeiten

  Alt 19. Mai 2010, 22:31
Alle Bilder von vornherein in eine ImageList? Geht natürlich nur bei gleicher Größe.Sonst trotzdem vorher laden und in Liste/Array of TBitmap o.ä. ablegen.

Grüsse, Dirk
  Mit Zitat antworten Zitat
Behemoph

Registriert seit: 6. Aug 2009
12 Beiträge
 
#3

Re: Timages Ladezeiten

  Alt 19. Mai 2010, 22:40
Danke für die schnelle Antwort. Die Bilder sind größtenteils gleich groß. Vllt geht es auch mit 2 Imagelists.. Dazu müsste ich nur wissen, wie ich das realisieren kann, wenn du meinst, dass das was ausmachen würde

mfg Behemoph
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: Timages Ladezeiten

  Alt 19. Mai 2010, 22:49
Du kannst Threads nutzen, die die Bilder im Hintergrund laden. Dabei bleibt deine Anwendung bedienbar. Ist aber etwas komplexer.

Was ich mir noch vorstellen könnte, wäre das vorherige Laden aller Bilder, wie schon angesprochen. Oder auch, wie im Web ab und zu verwendet, dass man alle Bilder in ein Bild wirft und somit nicht 55 Bilder laden muss, sondern nur eines, welches man dann entsprechend zu verarbeiten hat.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Behemoph

Registriert seit: 6. Aug 2009
12 Beiträge
 
#5

Re: Timages Ladezeiten

  Alt 19. Mai 2010, 23:14
Auch dir ein Dankeschön
Werde dann wohl zur Timagelist-Methode greifen. Nur.. Wie bekomme ich die 110 Bilder(jpegs) da in solche listen rein und wie rufe ich die richtigen zum richtigen zeitpunkt auf?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: Timages Ladezeiten

  Alt 19. Mai 2010, 23:22
Du kannst diese schon zur Entwicklungszeit ins Programm laden, wenn du willst. Setze eine TImageList auf die Form und mache einen Doppelklick darauf.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Behemoph

Registriert seit: 6. Aug 2009
12 Beiträge
 
#7

Re: Timages Ladezeiten

  Alt 19. Mai 2010, 23:46
Aaaaah, alles klar, danke dir

also.. hab jetzt mal zu testzwecken ne imagelist1 aufs formular gesetzt und bei formcreate reingeschrieben:

Delphi-Quellcode:
for i:= 1 to 55 do
begin
        a[i]:=tbitmap.create;
        a[i].LoadFromFile('bilder\invader1.bmp');
        imagelist1.Add(a[i],nil);
        a[i].free;
end;
a[i] ist ein array of tbitmap.

Es lässt sich soweit schonmal ohne Fehler kompilieren.. stellt sich mir nurnoch die Frage, wie ich dann die Bilder da wieder rauskriege :>
Also mein Ziel war es ja, die Bilder, mit Hilfe eines Timers, abwechselnd darzustellen.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

Re: Timages Ladezeiten

  Alt 19. Mai 2010, 23:50
*autsch* was schreibst du denn für Code? erzeug doch einfach nur einmal ein image und lade da jedes mal das bitmap rein.

Delphi-Quellcode:
image := TBitmap.Create();
try
  for i:= 1 to 55 do
  begin
    image.LoadFromFile('bilder\invader1.bmp');
    Imagelist1.Add(image, nil);
  end;
finally
  FreeAndNil(image);
end;

// so kann es es in einem image anzeigen
var
  image : TBitmap;
begin
  image := TBitmap.Create();
  try
    if (ImageList1.GetBitmap(0, image) ) then
      Image1.Picture.Bitmap.Assign(image);
  finally
    FreeAndNil(image);
  end;
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Behemoph

Registriert seit: 6. Aug 2009
12 Beiträge
 
#9

Re: Timages Ladezeiten

  Alt 20. Mai 2010, 00:57
Okidoki, es läuft.. glaub ich

Das letzte Problem ist jetzt allerdings, dass die Bilder viel zu groß sind und mein vorheriges
stretch:=true irgendwie nicht mehr gültig ist.

Jedenfalls wird nur ein kleiner Teil des viel zu großen Bildes angezeigt :/

mfg Behemoph
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#10

Re: Timages Ladezeiten

  Alt 20. Mai 2010, 05:30
Es gibt einen dummen Fehler, der mir immer passiert wenn ich eine Imagelist benutze

Sind die Eigenschaften height und width der Imagelist auf die richtige Größe eingestellt?
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  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 20:34 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