AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi VirtualTreeView und Bild aus Internet
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView und Bild aus Internet

Offene Frage von "Daxon"
Ein Thema von Daxon · begonnen am 5. Jul 2009 · letzter Beitrag vom 5. Jul 2009
Antwort Antwort
Daxon

Registriert seit: 2. Jul 2009
13 Beiträge
 
#1

VirtualTreeView und Bild aus Internet

  Alt 5. Jul 2009, 16:18
hallo!

wie bekomme ich am einfachsten (und am schnellsten von der ladezeit her!) ein bild aus dem internet als "symbol" in einer virtualtreeview?

danke!
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#2

Re: VirtualTreeView und Bild aus Internet

  Alt 5. Jul 2009, 16:36
Naja du solltest schaun das das Bild möglichst klein ist und dann per idHTTP herunterladen.
Und das dann im TreeView anzeigen.

Über die Suche solltest du dir die dafür notwendigen sachen zusammen suchen können.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Daxon

Registriert seit: 2. Jul 2009
13 Beiträge
 
#3

Re: VirtualTreeView und Bild aus Internet

  Alt 5. Jul 2009, 16:43
ja, ich habe es derzeit in einem stream geladen, diesen dann gegebenfalls umgewandelt, in eine imagelist geschrieben und dann angezeigt. dauert aber alles (weniger das herunterladen, sondern das umwandeln, in imagelist schreiben, etc.). deswegen ja meine frage, ob es auch eine schnellere möglichkeit gibt (eventuell ohne umwandeln und ohne imagelist)...
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#4

Re: VirtualTreeView und Bild aus Internet

  Alt 5. Jul 2009, 16:50
Zitat von Daxon:
ja, ich habe es derzeit in einem stream geladen, diesen dann gegebenfalls umgewandelt, in eine imagelist geschrieben und dann angezeigt. dauert aber alles (weniger das herunterladen, sondern das umwandeln, in imagelist schreiben, etc.). deswegen ja meine frage, ob es auch eine schnellere möglichkeit gibt (eventuell ohne umwandeln und ohne imagelist)...
Wie groß ist das Bild?
In welchem Format ist es?
In welches Format verwandelst du es?
Hast du schon mal Zeitmessungen durchgeführt um auf herauszufinden an welcher stelle am meisten Zeit verloren geht?
Zeig vielleicht mal deinen Code möglichweiße kann man ihn ja optimieren.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Daxon

Registriert seit: 2. Jul 2009
13 Beiträge
 
#5

Re: VirtualTreeView und Bild aus Internet

  Alt 5. Jul 2009, 20:33
Delphi-Quellcode:
var
  imgStream: TMemoryStream;
  imgBMP: TBitmap;

procedure TForm1.SaveImg();
begin
  imgStream := TMemoryStream.Create;
  imgBMP:= TBitmap.Create;
  IdHTTP1.Get(Edit1.Text, imgStream);
  imgBMP.LoadFromStream(imgStream);
  imgBMP.SetSize(120, 90);
  ImageList1.Add(imgBMP, nil);
  imgBMP.Free;
  imgStream.Free;
end;
So in etwa... Da dauert das Herunterladen von 50 gleichen Dateien (in einer schleife) schon fast 4 sekunden, obwohl Firefox die Grafik (120x90 und ca. 3KB) innerhalb von ms anzeigt...
Angehängte Dateien
Dateityp: zip download_108.zip (6,4 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von isilive
isilive

Registriert seit: 15. Okt 2008
Ort: Österreich
192 Beiträge
 
Delphi 2009 Professional
 
#6

Re: VirtualTreeView und Bild aus Internet

  Alt 5. Jul 2009, 22:53
Zitat von Daxon:
So in etwa... Da dauert das Herunterladen von 50 gleichen Dateien (in einer schleife) schon fast 4 sekunden, obwohl Firefox die Grafik (120x90 und ca. 3KB) innerhalb von ms anzeigt...
Kann es sein dass Firefox sie aus dem Cache lädt und gar nicht aus dem Internet?!
Versuch mal die Zeit festzustellen...


Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
     Time1 := GetTickCount();
end;

procedure foo...;
var
    Difference: DWORD;
begin
    Difference := GetTickCount() - Time1;
end;
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:29 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