Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Error al usar Handle (https://www.clubdelphi.com/foros/showthread.php?t=87484)

GerTorresM 13-01-2015 17:23:26

Error al usar Handle
 
Hola a tod@s


En el día de hoy se me presenta la siguiente situación :


tengo una unidad en la que tengo centralizados los procesados e intento en uno de los procedimientos generar un archivo xls, hasta ahí o tengo problema, el problema se genera al abrirlo, ya que me envia como error

Código Delphi [-]
  Undeclared Identifier 'Handle'


En los uses empleo ShellApi

El código es el siguiente

Código Delphi [-]
  ShellExecute(Handle, 'open', 
    PChar(FileName), nil, nil, SW_SHOWNORMAL);

Agradezco de antemano la colaboración y cualquier comentarios

duilioisola 13-01-2015 17:38:09

Esto parece que es porque no sabe de dónde sacar la variable Handle. Prueba con el Handle de a aplicación o del formulario principal.
Yo lo hago asi:

Código Delphi [-]
// utiliza uses Windows para las variables de error

procedure TDMMain.AbrirArchivo(Archivo: string);
var
  Resultado : word;
begin
  Resultado := ShellExecute(Application.Handle, 'open', PChar(Archivo), nil, nil, SW_SHOW);
  // Si Resultado es menor o igual a 32 el procedimiento ha fallado
  // Si es mayor, Resultado es el Handle de la aplicación abierta o del servidor DDE
  case Resultado of
     0: ShowMessage(_('El sistema operativo no tiene memoria o recursos suficiente.')); // The operating system is out of memory or resources
     ERROR_BAD_FORMAT: ShowMessage(_('El archivo EXE es inválido.')); // The .EXE file is invalid (non-Win32 .EXE or error in .EXE image)
     SE_ERR_ACCESSDENIED: ShowMessage(_('El sistema operativo denego el acceso al archivo especificado.')); // The operating system denied access to the specified file
     SE_ERR_ASSOCINCOMPLETE: ShowMessage(_('El archivo asociado es incompatible o inválido.')); //The filename association is incomplete or invalid
     SE_ERR_DDEBUSY: ShowMessage(_('La transacción DDE no pudo completarse porque otra transaccion DDE estaba siendo procesada.')); // The DDE transaction could not be completed because other DDE transactions were being processed
     SE_ERR_DDEFAIL: ShowMessage(_('La transacción DDE falló.')); // The DDE transaction failed
     SE_ERR_DDETIMEOUT: ShowMessage(_('La transacción DDE no pudo completarse porque ha expirado.')); // The DDE transaction could not be completed because the request timed out
     SE_ERR_DLLNOTFOUND: ShowMessage(_('La librería dinamica especificada no se ha encontrado.')); // The specified dynamic-link library was not found
     SE_ERR_FNF: ShowMessage(_('El archivo no ha sido encontrado.')); //The specified file was not found
     SE_ERR_NOASSOC: ShowMessage(_('No hay ninguna aplicación asociada con la extensión del archivo dado.')); // There is no application associated with the given filename extension
     SE_ERR_OOM: ShowMessage(_('No ha habido memoria suficiente para completar la operación.')); // There was not enough memory to complete the operation
     SE_ERR_PNF: ShowMessage(_('No se ha encontrado la carpeta especificada.')); // The specified path was not found
     SE_ERR_SHARE: ShowMessage(_('Error de permisos.')); // A sharing violation occurred
  end;
end;

GerTorresM 13-01-2015 20:27:02

Muchas Gracias
 
Duilioisola:

Te agradezco, tu respuesta era justo lo que necesitaba


La franja horaria es GMT +2. Ahora son las 04:02:34.

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