PDA

Ver la Versión Completa : ¿como agrego una calculadora?


Dannell
24-11-2012, 20:00:10
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 (http://www.clubdelphi.com/foros/guiaestilo.php).

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:

...
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.

http://www.clubdelphi.com/foros/data:image/png;base64,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

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:

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:

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í (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx)].

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

Saludos :)