Imaqen desde Url solucionado ...

Imaqen desde Url solucionado ...

Postby mastintin » Thu Dec 04, 2014 5:56 pm

Pues con este nuevo metodo para Timage ...
Falta que controle los posibles fallos si no existe la imagen en la url o asi, pero en principio funciona.Lo he probado con una imagen gif, jpg y png .
Tiene un problema y es que si llamamos a mas de una imagen , no llega a terminarse la carga de la imagen antes de que termine de la carga de la ventana .
Esto tendría que controlarse con el evento OnResponseFinished pero no se como hacerlo así que os lo dejo a vosotros.

Code: Select all  Expand view  RUN


METHOD LoadFromURL(cUrl ) CLASS TImage
local oHttp
local cResp
  Try
      oHttp := CreateObject( "winhttp.winhttprequest.5.1" )
      oHttp:Open("GET", cUrl, .f. )
      oHttp:Send()
      cResp := oHttp:ResponseBody()
  Catch
      MsgStop( "Error" )
      Return .f.
  End Try
 
   ::LoadFromMemory( cResp )
   ::Refresh()
Return .t.

 
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Imaqen desde Url solucionado ...

Postby Antonio Linares » Fri Dec 05, 2014 7:11 am

Manuel,

Sencillamente genial :-)

Añadido ya para la próxima versión de FWH :-)

Muchas gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42107
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Imaqen desde Url solucionado ...

Postby AngelSalom » Mon Dec 22, 2014 3:14 pm

Buenas, amigos. No consigo hacer funcionar este nuevo método. Lo he pasado a función para no modificar (de momento) la clase, pero no me carga ninguna imagen. He probado a grabarla por si era un tema de refresco o similar pero entonces "petarda" el ejemplo.

Aquí dejo el código a ver si encontráis algún fallo. Gracias.

Code: Select all  Expand view  RUN
#include "FiveWin.ch"
#include "Image.ch"

//----------------------------------------------------------------------------//

function Main()

   Local oDlg, oImage

   DEFINE DIALOG oDlg FROM 0, 0 TO 25, 60
   @ 0, 0 IMAGE oImage SIZE 150, 150 OF oDlg SCROLL // ADJUST

   @ 1, 28 BUTTON "URL"   SIZE 50, 10 OF oDlg ACTION CargaImagenDesdeUrl (oImage,"http://forums.fivetechsupport.com/styles/prosilver/imageset/site_logo.gif")
   @ 2, 28 BUTTON "Salir" SIZE 50, 10 OF oDlg ACTION oDlg:End()
   
   ACTIVATE DIALOG oDlg CENTER

Return ( nil)

Function CargaImagenDesdeUrl (oImage,cUrl)
local oHttp
local cResp
  Try
      oHttp := CreateObject( "winhttp.winhttprequest.5.1" )
      oHttp:Open("GET", cUrl, .f. )
      oHttp:Send()
      cResp := oHttp:ResponseBody()
  Catch
      MsgStop( "Error cargando imagen" )
      Return .f.
  End Try

   oImage:LoadFromMemory( cResp )
   oImage:Refresh()
   msginfo (cUrl,"Imagen cargada")
Return (.t.)
 
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Imaqen desde Url solucionado ...

Postby mastintin » Mon Dec 22, 2014 4:02 pm

¿ usas un proxi ?
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Imaqen desde Url solucionado ...

Postby AngelSalom » Mon Dec 22, 2014 4:16 pm

No, lo he probado en el trabajo y en casa con el mismo resultado.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Imaqen desde Url solucionado ...

Postby acuellar » Mon Dec 22, 2014 4:46 pm

Angel

Probé tu ejemplo y funciona.

Antonio / Manuel

Cómo se puede evitar la librería freeimage.dll con FWH1412

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1643
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Imaqen desde Url solucionado ...

Postby AngelSalom » Mon Dec 22, 2014 5:00 pm

Vaya, pues no sé a que pude ser debido ... :shock: :shock:
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Imaqen desde Url solucionado ...

Postby Antonio Linares » Mon Dec 22, 2014 5:52 pm

Adhemar,

Estamos en ello, a ver si finalmente podemos eliminarla.

De momento hay que seguir usándola
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42107
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Imaqen desde Url solucionado ...

Postby acuellar » Mon Dec 22, 2014 6:37 pm

Perfecto.

Gracias.

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1643
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Imaqen desde Url solucionado ...

Postby Silvio.Falconi » Tue Dec 23, 2014 10:25 am

Antonio Linares wrote:Manuel,

Sencillamente genial :-)

Añadido ya para la próxima versión de FWH :-)

Muchas gracias!



Antonio,
I think the mastintin method need a modify :

If the user Have a Proxy the method LoadFromURL(cUrl ) not run ok




to add proxy it can be

Code: Select all  Expand view  RUN

#define HTTPREQUEST_PROXYSETTING_DEFAULT   0
#define HTTPREQUEST_PROXYSETTING_PRECONFIG 0
#define HTTPREQUEST_PROXYSETTING_DIRECT    1
#define HTTPREQUEST_PROXYSETTING_PROXY     2


#define HTTPREQUEST_SETCREDENTIALS_FOR_SERVER  0
#define HTTPREQUEST_SETCREDENTIALS_FOR_PROXY   1

METHOD LoadFromURL(cUrl ,lProxy, cUserName, cPassword,nPort,cProxy) CLASS TImage
local oHttp
local cResp
  Try
     oHttp := CreateObject( "winhttp.winhttprequest.5.1" )

      if lProxy
         oHttp:SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, cProxy+":"+alltrim(str(nPort)))
      endif


      oHttp:Open("GET", cUrl, .f. )

        if lProxy
         oHttp:SetCredentials(cUserName,cPassword,HTTPREQUEST_SETCREDENTIALS_FOR_PROXY)
      endif


      oHttp:Send()
      cResp := oHttp:ResponseBody()
  Catch
      MsgStop( "Error" )
      Return .f.
  End Try

   ::LoadFromMemory( cResp )
   ::Refresh()
Return .t.

 
 




I use it on Yahoo Meteo and Yahoo finance ( created by Mastintin)
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
Silvio.Falconi
 
Posts: 7063
Joined: Thu Oct 18, 2012 7:17 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: FranciscoA, Google [Bot] and 25 guests