PDA

Ver la Versión Completa : Enlaces a pagina web con IE7


jorgegetafe
05-02-2007, 00:40:40
Saludos, quiero hacer en mi programa unos accesos directos a paginas web, tengo internet explorer 7 y no me funciona ninguno de estos procedimientos en mi form pongo:


uses UrlMon

procedure TForm1.Button1Click(Sender: TObject);
begin
HlinkNavigateString(Nil,'http://www.google.es/');
end;


Y tambien el otro, que es el que yo he usado cuando me ha hecho falta:

Con uses ShellApi:

procedure TForm1.Button2Click(Sender: TObject);
begin
ShellExecute(Form1.Handle,nil,PChar('http://www.google.es/'),'','',SW_SHOWNORMAL);
end;

El error que me aparece es: "[Error] Unit1.pas(735): Statement expected, but expression of type 'HRESULT' found" )

Creo que es por una inconpatibilidad con IE7, ¿alguien sabe como hacerlo de otra forma?

¿o me tengo que aguantar y no puedo poner enlaces a paginas de internet?

muchas gracias.

Neftali [Germán.Estévez]
05-02-2007, 11:26:59
No creo que sea eso. Es más, el error que dices parace que te da en compilación, por lo tanto ni siquiera "ha entrado" en escena el Explorer.

Ambas líneas funcionan perfectamente en XP+IE7 (compilado con Delphi 6).

jorgegetafe
05-02-2007, 16:26:26
No creo que sea eso. Es más, el error que dices parace que te da en compilación, por lo tanto ni siquiera "ha entrado" en escena el Explorer.
Ambas líneas funcionan perfectamente en XP+IE7 (compilado con Delphi 6).

Wueno y que hago? como veras esta todo bien escrito, he añadido sus unidades correspondientes y nada.

¿Alguna idea?

gracias.

Neftali [Germán.Estévez]
05-02-2007, 16:41:36
Exactamente qué línea es la que te está dando error.
¿Tienes componentes o librerías externas que estés utilizando en ese programa?

A veces me ha pasado que una línea que estaba bien, me estaba dando errores de compilación y era debido a que en otra unit había otra función con el mismo nombre y otro tipo de parámetros.

Sabiendo la línea que da el error, para asegurarte, puedes hacer las llamadas a las funciones añadiendo delante la unit a la que pertenecen, para evitar confusiones...


// por ejemplo...
URLMon.HlinkNavigateString(Nil,'http://www.google.es/');

Ñuño Martínez
05-02-2007, 16:45:43
Creo que lo tengo. Prueba esto a ver:

procedure TForm1.Button2Click(Sender: TObject);
VAR
Foo: HINSTANCE;
begin
Foo := ShellExecute(Form1.Handle,nil,PChar('http://www.google.es/'),'','',SW_SHOWNORMAL);
end;
Ten en cuenta que lo he pueso de memoria y no he comprobado nada, pero me ha llegado la inspiración.