Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Acceso directo (https://www.clubdelphi.com/foros/showthread.php?t=44361)

jorgegetafe 04-06-2007 22:14:19

Acceso directo
 
Hola, quiero hacer un boton, que al hacer clic sobre él abra una nueva venta de internet explorer en la dirección que yo le diga. (Necesito el codigo que el boton y lo del clic se hacerlo)

cHackAll 04-06-2007 22:19:58

Esto?
 
Código Delphi [-]
uses ShellAPI;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShellExecute(0, 'open', 'http://www.clubdelphi.com/foros/showthread.php?t=44361', nil, nil, SW_SHOW);
end;

jorgegetafe 04-06-2007 22:26:53

Cita:

Empezado por cHackAll
Código Delphi [-]
uses ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(0, 'open', 'http://www.clubdelphi.com/foros/showthread.php?t=44361', nil, nil, SW_SHOW);
end;




Me aparece este error... no se que puede ser... (He añadido la unidad shellapi)

http://img140.imagevenue.com/img.php..._122_523lo.JPG

gracias.

cHackAll 04-06-2007 22:34:08

Huuuyyy
 
:confused:
No estoy muy seguro cual es la causa, cierra el IDE y abrelo de nuevo, corre... y si falla usa ésto:

Código Delphi [-]
ShellExecute(Handle, nil, 'http://www.marca.com', nil, nil, SW_SHOWNORMAL);

En todo caso desde el principio debiese haber funcionado!

Suerte!

jorgegetafe 04-06-2007 23:02:21

Cita:

Empezado por cHackAll
:confused:
No estoy muy seguro cual es la causa, cierra el IDE y abrelo de nuevo, corre... y si falla usa ésto:


Código Delphi [-]ShellExecute(Handle, nil, 'http://www.marca.com', nil, nil, SW_SHOWNORMAL);



En todo caso desde el principio debiese haber funcionado!

Suerte!

Me sigue dando el mismo error :-(

cHackAll 05-06-2007 05:54:34

Huuyyyyy
 
:eek: No lo puedo creer (de verdad), me parece que existe alguna propiedad, variable o unidad justamente con el nombre 'ShellExecute', pero bueno en realidad se puede hacer lo que buscas de N formas, aca te dejo otra;

Código Delphi [-]
uses ComObj;
 
procedure TForm1.Button1Click(Sender: TObject);
var IE: Variant;
begin
 IE := CreateOleObject('InternetExplorer.Application');
 IE.Visible := True;
 IE.Navigate('http://www.marca.com');
end;

Seguré analizando el anterior error, pero en definitiva debia haberte funcionado, ademas es la forma mas adecuada (desde mi punto de vista)

Suerte!

roman 05-06-2007 08:36:59

¡Vaya situación curiosa!

Jorge, asegúrate de tener activada la opción "Extended syntax" en Project|Options, pestaña Compiler y de no tener la directiva

Código Delphi [-]
{$X-}

en ninguna parte. Esta opción lo que hace es:

Cita:

Empezado por ayuda de Delphi
Enables you to define a function call as a procedure and to ignore the function result.

Si la desactivas, entonces no puedes llamar a la función ShellExecute sin asignar su resultado a alguna variable:

Código Delphi [-]
x := ShellExecute(...);

esto es, en una sentencia.

Casi juraría que a eso se debe el problema.

// Saludos

jorgegetafe 05-06-2007 10:29:28

Mil gracias, era por lo de la opcion extended syntax. :)

cHackAll 05-06-2007 21:18:23

Huuffff
 
{$X-} ???? Buena honda, nunca me tope con tal eventualidad! muy interesante amigo roman

egostar 05-06-2007 21:22:30

Por supuesto que Roman ha hecho una anotación destacable, pero me pregunto, porque estaba desactivada esa opción. Eso está habilitado por omisión, vaya pues, lo que es estar de curiosos:D:D:D

Salud OS.

roman 05-06-2007 21:35:00

Yo tardé en darme cuenta y estuve haciendo varias pruebas. Es que el error sí que era raro. Si recuerdan, el pascal estandar justamente no admite el uso de funciones fuera de sentencias. Delphi nos acostumbró tanto a la sintaxis extendidad que ya ni nos acordamos de ella.

// Saludos


La franja horaria es GMT +2. Ahora son las 12:36:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi