Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Überprüfen ob Bild geladen wurde (https://www.delphipraxis.net/156684-ueberpruefen-ob-bild-geladen-wurde.html)

BlueLiquidCell 10. Dez 2010 19:50

Überprüfen ob Bild geladen wurde
 
Hey Guys

Möchte überprüfen ob ein Bild komplett geladen wurde.

Lade das Bild mit "Picture.LoadfromFile".
Bild isn jpeg falls das wichtig is ;-)

Gibts da ne einfache Möglichkeit?
Hab leider nix gefunden :-(

Danke schonma

Luckie 10. Dez 2010 19:56

AW: Überprüfen ob Bild geladen wurde
 
Die JPEG Komponente sollte ein entsprechendes Ereignis haben.

s.h.a.r.k 10. Dez 2010 20:23

AW: Überprüfen ob Bild geladen wurde
 
Warum ein Ereignis? Nach dem LoadFromFile ist das Bild doch komplett geladen, oder nicht? :gruebel: Wird unter D2 asynchron geladen?

Luckie 10. Dez 2010 20:28

AW: Überprüfen ob Bild geladen wurde
 
Ein JPEG kann auch progressiv komprimiert sein, dann wird es nach und nach geladen. Allerdings sollte die Methode erst nach dem vollständigen laden zurückkehren. Also ist es geladen, wenn die nächste Befehlszeile ausgeführt wird.

s.h.a.r.k 10. Dez 2010 20:30

AW: Überprüfen ob Bild geladen wurde
 
Das meinte ich ja :thumb: Aber vielleicht gibts ja auch eine Komponente die das eben asynchron macht. Dann sollte es wahrlich ein Ergebnis geben. Hatte gerade nur an die Standardkomponente TImage (bzw. TPicture) gedacht.

BlueLiquidCell 10. Dez 2010 20:52

AW: Überprüfen ob Bild geladen wurde
 
Hey

Also leider ist es nicht so das fertig geladen is wenn die nächste Zeile abgearbeitet ist.
Das macht einfach weiter.

Ein Ereignis hab ich leider nicht gefunden :-(

Luckie 10. Dez 2010 20:54

AW: Überprüfen ob Bild geladen wurde
 
Was verwendest du denn für eine Komponente? Und was sagt die Dokumentation dazu?

wicht 10. Dez 2010 20:56

AW: Überprüfen ob Bild geladen wurde
 
Das kann nicht sein. Sobald LoadFromFile() zuende ist, gab es entweder eine Exception, oder das Bild ist geladen worden.
Pack mal hinter das Laden ein
Delphi-Quellcode:
Application.ProcessMessages;
und danach erst den folgenden Code... Ist mal so ins blaue geraten.

BlueLiquidCell 10. Dez 2010 21:08

AW: Überprüfen ob Bild geladen wurde
 
Hey
Verwende ein "TImage"
In der Docu find ich irgendwie nix :-( Such ich an der falschen Stelle?

"Application.ProcessMessages" hat leider nicht geholfen.

Luckie 10. Dez 2010 21:16

AW: Überprüfen ob Bild geladen wurde
 
TImage kann JPEGS laden? Welche Delphi Version hast du?

Satty67 10. Dez 2010 21:49

AW: Überprüfen ob Bild geladen wurde
 
TImage.Picture kann ja alles laden, was als Grafik registriert wurde.

Lädt scheinbar auch asynchron, folgender Code zeigt "Load" vor der ersten Prozent-Angabe:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute() then
    Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
  Memo1.Lines.Add('Load')
end;

procedure TForm1.Image1Progress(Sender: TObject; Stage: TProgressStage;
  PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: string);
begin
  Memo1.Lines.Add(IntToStr(percentDone))
end;
Womit dann auch klar sein sollte, womit man das komplette Laden prüfen kann.

OnProgress scheint aber nicht bei allen Grafiktypen aufgerufen zu werden. Auch je nach Typ anders (GIF fast schon mehrmals pro 1%, JPG bei 0% und bei 100%, BMP scheinbar überhaupt nicht, nicht einmal bei 100% :gruebel: )

BlueLiquidCell 10. Dez 2010 21:51

AW: Überprüfen ob Bild geladen wurde
 
Hey

Jip kann es wenn man die uses "jpeg" benutzt gehts.
Hab Delphi 2005.

Christoph

Bummi 10. Dez 2010 23:28

AW: Überprüfen ob Bild geladen wurde
 
Laut Onlinehilfe:
Zitat:

Ist IncrementalDisplay false , tritt OnProgress zwar ein, aber die Grafik wird erst aktualisiert, wenn das gesamte Grafik geladen wurde.

BlueLiquidCell 10. Dez 2010 23:53

AW: Überprüfen ob Bild geladen wurde
 
Hey

Thanks Satty67, OnProgress funktioniert!

Allerdings ist da nochn kleines Problem. Anscheinend wird es nicht immer aufgerufen, weis nicht genau woran es liegt. Ne Idee?

Incremental Display hab ich ma auf true gemacht, ändert aber an dem anderen Problem leider nichts :-(

BlueLiquidCell 11. Dez 2010 00:04

AW: Überprüfen ob Bild geladen wurde
 
Ok habs rausgekriegt.
Problem war das das Image invisible war. Da wird die OnProgress wohl nicht aufgerufen.

Kann man das irgendie machen das dass trotzdem geht?
Würds gerne auf invisible haben bis es fertig geladen ist.

THX

BlueLiquidCell 13. Dez 2010 14:07

AW: Überprüfen ob Bild geladen wurde
 
Keiner ne idee??

DeddyH 13. Dez 2010 14:09

AW: Überprüfen ob Bild geladen wurde
 
Kannst Du evtl. ein anderes Control drüberlegen und das Image nach dem Laden mit BringToFront nach vorne holen?

BlueLiquidCell 18. Dez 2010 15:05

AW: Überprüfen ob Bild geladen wurde
 
Hey
Hab das mit nem anderen Control mal versucht aber irgendwie geht es nicht.
Jedesmal wenn die beiden nebeneinander liegen gehts. Aber sobald sie übereinander liegen gehts nicht mehr :-(
Nen Tipp?

BlueLiquidCell 1. Jan 2011 17:15

AW: Überprüfen ob Bild geladen wurde
 
Keiner noch ne andere Idee? :-(


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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