Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 16-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Creo que estas tratando de implementar el código que te sugerí aquí y te has echo una ensalada.
Si te fijas bién en el post anterior, no es en OnCreate donde se captura el nombre de archivo sino en DragDropFileMSG.

Resumiendo:
Código Delphi [-]
....
implementation

uses ShellApi,StrUtils;

function GetShortName(const FileName: String): String;
var
  ShortName: PChar;
  Size: Cardinal;
begin
  Size := GetShortPathName(PChar(FileName), nil, 0);
  if Size > 0 then
  begin
    GetMem(ShortName, Size);
    GetShortPathName(PChar(FileName), ShortName, Size);
    Result := ShortName;
    FreeMem(ShortName);
  end
  else
    Result := FileName;
end;

procedure LlamarReg2inf(Hnd: THandle; const App:string; Origen: string; Destino: string);
begin
  // En Origen dejamos el nombre corto sin espacios
  Origen:= AnsiReplaceStr(GetShortName(Origen), ' ', ''); 
  // Cambiamos la extensión para Destino 
  Destino:= ChangeFileExt(Origen, '.inf');
  // Llamamos a 'REG2INF.EXE con Origen y Destino
  ShellExecute(Hnd,  
              'OPEN',
              PChar(ExtractFileName(App)),
              PChar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_SHOW);
end;

procedure TForm1.DragDropFileMSG(var Msg: TMessage);
var
  DragDropFileName: array[0..255] of Char;
begin
  DragQueryFile(msg.WParam, 0, DragDropFileName, Length(DragDropFileName));
  DragFinish(Msg.WParam);
  LlamarReg2inf(Handle, 'REG2INF.EXE', DragDropFileName,'')
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle, True);
end;
...
A fin de simplificar la explicación recorté y modifiqué un poco el código del procedimiento LlamarReg2inf.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecutar una accion al presionar un boton Vales08 Varios 4 31-05-2011 21:48:45
Arrastrar y soltar un archivo sobre la aplicación escafandra C++ Builder 7 05-04-2008 16:30:46
Ejecutar una accion sobre DBGrid seb@ OOP 4 01-11-2006 21:00:06
ejecutar accion en un cliente fartycl Varios 4 03-10-2005 03:20:12
Ejecutar un archivo.exe desde mi aplicacion CLX ctronx Varios 13 25-01-2005 09:21:16


La franja horaria es GMT +2. Ahora son las 20:54:45.


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
Copyright 1996-2007 Club Delphi