Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   ¿como agrego una calculadora? (https://www.clubdelphi.com/foros/showthread.php?t=81560)

Dannell 24-11-2012 20:00:10

¿como agrego una calculadora?
 
Hola soy nuevo en el club. me gustaria saber como agrego un icono que me permita abrir una calculadora, asi como el q tiene windows en el icono de inicio. Gracias.

ecfisa 24-11-2012 20:12:46

Hola Danell y bienvenido a Club Delphi :)

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

No está muy claro donde queres situar ese ícono... Pero si será dentro de un form, una de las formas sencillas es agregar un TSpeedButton (pestaña Additional), ponerle una imágen en su propiedad Glyph y en el evento OnClick lo siguiente:
Código Delphi [-]
...
implementation

uses ShellApi;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  ShellExecute(Handle,nil,'calc.exe',nil,nil,0);
end;
...
De forma similar lo podes hacer con un TImage, cargando la imágen en su propiedad Picture.

Saludos.

Dannell 24-11-2012 20:55:46

Ok Gracias.

Dannell 24-11-2012 21:30:23

hola lo use tal cual me dijiste pero no corre el programa y si lo estoy utilizando en un from.


ecfisa 24-11-2012 21:59:29

Hola Danell.

Si, disculpas. Escribí el código en el aire y el último parámetro de ShellExecute no debería ser 0.

De paso te pongo un ejemplo de un procedimiento al cual sólo debes mandarle la ruta y nombre del programa para simplificar el llamado:
Código Delphi [-]
uses ShellApi;

procedure TForm1.EjecutarApp(AppName: string);
var
  ErrNro: Integer;
  ErrMsg: string;
begin
  ErrNro:= ShellExecute(Handle, nil, PChar(AppName), nil, nil, SW_SHOWNORMAL);
  case ErrNro of
    ERROR_FILE_NOT_FOUND: ErrMsg := 'Archivo no encontrado';
    ERROR_PATH_NOT_FOUND: ErrMsg := 'Ruta no encontrada';
    SE_ERR_ACCESSDENIED : ErrMsg := 'Acceso negado';
    SE_ERR_DDETIMEOUT   : ErrMsg := 'Se agotó la solicitud de tiempo de espera';
    SE_ERR_OOM          : ErrMsg := 'Sin memoria para completar la operación';
  end;
  if ErrNro <= 32 then
    MessageBox(Handle,PChar(ErrMsg),'ERROR',MB_ICONERROR+MB_OK);
end;

Llamadas de ejemplo:
Código Delphi [-]
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  EjecutarApp('C:\Windows\System32\calc.exe');
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
  EjecutarApp('C:\Windows\System32\notepad.exe');
end;
Puse los errores mas comunes, el resto de ellos así como todos los detalles de la función ShellExecute los tenes [aquí].

Y por si te fuera de ayuda te adjunto un ejemplo para que puedas probarlo.

Saludos :)


La franja horaria es GMT +2. Ahora son las 09:43:15.

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