[delphi] TImage laden vanaf website lukt niet

Pagina: 1
Acties:
  • 208 views sinds 30-01-2008
  • Reageer

  • Hardcell
  • Registratie: November 2004
  • Laatst online: 03-02-2023
Hoi,

Ik probeer middels een TImage-component een plaatje van een website in te laden maar dit wil niet echt lukken. Als ik design-time een TImage op een form gooi en ik doe (in de Picture property) een plaatje laden kan ik hier gewoon een url intypen en dit werkt prima.
Doe ik nu run-time een Image.Picture.LoadFromFile('http://www.bla.nl.bla.jpg') gaat hij ineens alle forward-slashes vervangen door backslashes en zet hij er het windows-pad waar de executable inkomt voor wat resulteerd in een EFOpenError.
Any solutions?

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017

Parcye

Mr C

Het is naar mijn weten niet mogelijk in windows een website te benaderen als locale file. Je zult dus het bestand op een andere manier in een stream moeten krijgen en dan LoadfromStream gebruiken.

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • Hardcell
  • Registratie: November 2004
  • Laatst online: 03-02-2023
Ik ben al wat aant proberen met streams maar dit wil nog niet echt. Heb er een TIdHTTP component even bijgenomen.

Heb als test even dit:

code:
1
2
3
4
ms := TMemoryStream.Create;
IdHTTP1.Get('http://www.bla.nl/bla.gif', ms);
ms.Position := 0;
Image1.Picture.Graphic.LoadFromStream(ms);


maar dit levert een access violation op..

  • Hardcell
  • Registratie: November 2004
  • Laatst online: 03-02-2023
Heb de oplossing ook zelf al gevonden intussen.
Met een TOleGraphic ist vrij makkelijk te regelen:

code:
1
2
3
4
5
6
ms := TMemoryStream.Create;
IdHTTP1.Get('http://www.bla.com/bla.gif', ms);
ms.Position := 0;
OleGraphic := TOleGraphic.Create;
OleGraphic.LoadFromStream(ms);
Image1.Picture.Assign(OleGraphic);