Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Problem bei Imagekomponente Loadfromfile via http (https://www.delphipraxis.net/7663-problem-bei-imagekomponente-loadfromfile-via-http.html)

woki 18. Aug 2003 16:10


Problem bei Imagekomponente Loadfromfile via http
 
Hallo,

Die Imagekomponente kann offensichtlich bei Loadfromfile nicht nur Bilder von der lokalen Platte, sondernn bei Eingabe einer korrekten URL auch ein Bild über http aus dem Internet laden. Beim Versuch dasgleiche programatisch zu machen, wird die Url allerdings automatich umgewandelt,
von
Code:
Image1.Picture.LoadFromFile('http://Domainname/_bilder/kontak_01.jpg');
in eine lokale Cacheadresse und mit folgender Fehlermeldung Quittiert

Zitat:

Datei C:\Dokumente und Einstellungen\wolfgang\Lokale Einstellungen\Temporary Internet Files\Content.IE5\6DFK5W3Y\http:\DOMAINNAME\_bilde r\kontak_01.jpg kann nicht geöffnet werden. Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch
Also von Hand zur Designzeit Bild laden mit Eingabe
geht.

Ich finde es ja auch nett, daß er automatisch versucht, das Bild aus dem Cache zu laden, wäre aber praktisch, wenn Windows die Umrechnung in die Cacheadresse korrekt durchführen würde.
Weiß da jemand Rat?

Grüsse
Woki

Matze 18. Aug 2003 17:46

Re: Problem bei Imagekomponente Loadfromfile via http
 
Hi!

So geht's, allerdings wird das Bild auf der Festplatte (zwischen-)gespeichert.
Aber das müsste man ja nachher wieder löschen können. Wenn jemand weiß, wie's geht, dann soll er es doch bitte hier posten.

Hi! So geht's:
Delphi-Quellcode:
uses: urlmon, jpeg

...

function DownloadFile(const url: string; filename: string): boolean;
begin
  Result := urlmon.URLDownloadToFile(nil, PChar(url), PChar(filename), 0, nil) = 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if DownloadFile('http://www.discount-software.ws/discount-software-images/borland-delphi-6.0-fr.jpg', 'c:\picture.jpg')
  then image1.Picture.LoadFromFile('C:\picture.jpg')
  else
  showmessage('Sorry, geht irgendwie nicht!');
end;
Gruß Matze

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
[edit=Matze]Code korrigiert.[/edit]

Matze 18. Aug 2003 18:04

Re: Problem bei Imagekomponente Loadfromfile via http
 
Hi! Ich nochmal.

Man kann jetzt in Edit1 eine URL eigeben, von der das Bild ist, gespeichert, dann wird das Bild geladen und sofort wieder von der Festplatte gelöscht

So ist's jetzt richtig:

Delphi-Quellcode:
uses: urlmon, jpeg;

...

function DownloadFile(const url: string; filename: string): boolean;
begin
  Result := urlmon.URLDownloadToFile(nil, PChar(url), PChar(filename), 0, nil) = 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  URL:=Edit1.Text;
  if DownloadFile(URL, 'c:\picture.jpg')
  then image1.Picture.LoadFromFile('c:\picture.jpg')
  else
  showmessage('Sorry, geht irgendwie nicht!');
deleteFile('c:\picture.jpg')
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key =vk_return then Button1Click(self);
end;
Ich hoffe, du kannst damit was anfangen. :mrgreen:

Gruß Matze

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]

Uncle Cracker 18. Aug 2003 19:03

Re: Problem bei Imagekomponente Loadfromfile via http
 
Kannst auch mal hier gucken: http://www.delphipraxis.net/internal...ect.php?t=5381

woki 18. Aug 2003 20:13

Re: Problem bei Imagekomponente Loadfromfile via http
 
Hi Matze,

sorry für die späte Antwort.

vielen Dank für die Ausarbeitung dieses Workarounds. Ich kann damit auf jeden Fall erstmal leben und weiterarbeiten.

Es bliebe aber trotzdem interssant, warum zur Designzeit die Eingabe einer URL in TImage|Picture|laden funktioniert, aber es mit Image1.picture.loadfromfile programatisch nicht geht.

Thnx
Woki

glkgereon 30. Dez 2004 22:07

Re: Problem bei Imagekomponente Loadfromfile via http
 
ich grab diesen thread nochmnal aus...

ich will images ausm inet holen

dazu benutz ich folgenden code:
Delphi-Quellcode:
function DownloadFile(const url: string; filename: string): boolean;
begin
  Result := urlmon.URLDownloadToFile(nil, PChar(url), PChar(filename), 0, nil) = 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i, j:integer;
    filename:string;
begin
  for i:=SpinEdit1.Value to SpinEdit2.Value do
  begin
    FileName:=inttostr(i)+'.jpg';
    if DownloadFile(url+filename,ShellTreeView1.Path+filename)
    then ListBox1.Items.Add('Erfolgreich '+filename)
    else ListBox1.Items.Add('Fehlgeschlagen '+filename);
  end;
end;
aber es kommt IMMER fehlgeschlagen,. obwohl es das bild gibt!!!

kann es daran liegen das ich hinter nem router sitze?

Muetze1 30. Dez 2004 23:18

Re: Problem bei Imagekomponente Loadfromfile via http
 
Moin!

Nein, mit dem Router hat es eigentlich nix zu tun, aber folgendes fällt mir dazu ein:

1. auf dem Server heissen die Bilder 01.jpg und nicht 1.jpg
2. Diese Bilder existieren schon lokal da wo sie gespeichert werden sollen und daher schlägt der Download fehl.
3. Dein Internetzugang ist für den IE nicht ordentlich konfiguriert
4. Der Server erwartet eine AUTHentication...

MfG
Muetze1

glkgereon 31. Dez 2004 10:44

Re: Problem bei Imagekomponente Loadfromfile via http
 
also
1. Auaa, stimmt :wall:
2. Nein, sie existieren net
3. ist er
4. keine ahnung, ich muss mich nirgendwo einloggen

wie kann ich denn 1 auf 01 bringen?
also es sollen auch 2-stellige möglich sein....


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