Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-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
Cita:
Empezado por jonydread Ver Mensaje
si necesito que cuando de click derecho sobre un archivo .reg el usuario y seleccione
abrir con>mi aplicacion el programa se abra y cargue el archivo
Hola.

Te pongo un ejemplo muy simple. Sólo agregá un memo al form y el siguiente código:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  try
    Memo1.Lines.LoadFromFile(ParamStr(1));
  except
    raise Exception.Create('No se puede abrir el archivo');
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 10-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
se puede hacer que carge al opendialog donde puse // he intentado pero no lo logro

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  try
    // (ParamStr(1));
  except
    raise Exception.Create('No se puede abrir el archivo');
  end;
end;
Responder Con Cita
  #3  
Antiguo 10-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.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  if ParamStr(1) > '' then
  begin
    OpenDialog1.FileName:= ParamStr(1);
    OpenDialog1.Execute;
  end;
end;
Pero no veo la necesidad de llamar TOpenDialog si ya se está enviando el nombre de archivo en ParamStr(1)...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 11-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
lo que pasa es que tengo todo referenciado a opendialog
un genio amigo !!
asi quedo mi codigo
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
  if ParamStr(1) > '' then
  begin
    OpenDialog1.FileName:= ParamStr(1);
    edit1.Text:=ParamStr(1);
    end
muchas gracias!!
Responder Con Cita
  #5  
Antiguo 11-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 jonydread.

Se me ocurrió algo que quizá te pueda interesar incluir.
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
     procedure DragDropFileMSG(var Msg : TMessage); message WM_DROPFILES;
  public
  end;

var
  Form1: TForm1;

implementation 

uses ShellApi;

procedure TForm1.DragDropFileMSG(var Msg: TMessage);
var
  DragDropFileName: array[0..255] of Char;
begin
  DragQueryFile(msg.WParam, 0, DragDropFileName, Length(DragDropFileName));
  DragFinish(Msg.WParam);
  OpenDialog1.FileName:= DragDropFileName;
  Edit1.Text:= DragDropFileName;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle, True);
end;
...
Estando abierta tu aplicación y el explorador de windows simultaneamente, seleccioná un archivo desde el último, arrastralo y soltalo sobre el form de tu aplicación.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 12-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
muchas gracias amigo funcionando !!
al arrastrar un archivo a mi aplicacion he hecho que se inicie automaticamente el proceso y estoy tratando de implementar un dialogo final Completado!! y al presionar ok se cierre pero no me funciona muy bien en esta parte tengo el error
hasta ay todo bien
Código Delphi [-]
if ExtractFileExt(nomArchivo) = '.reg' then
    ShellExecute(Handle, 'open', 'HAND.CMD', PChar(GetShortName(Opendialog1.FileName)), nil, SW_NORMAL)
     else if MessageDlg('Archivo invalido!', MtInformation, [mbOK],0) = mrok then
      Application.Terminate;
       end;
Aca el problema en esta linea no se la forma correcta de hacerla
if ShellExecute(Handle, 'open', 'HAND.CMD', PChar(GetShortName(Opendialog1.FileName)), nil, SW_NORMAL)
Código Delphi [-]
if ExtractFileExt(nomArchivo) = '.reg' then
begin
  if  ShellExecute(Handle, 'open', 'HAND.CMD', PChar(GetShortName(Opendialog1.FileName)), nil, SW_NORMAL) 
then begin
if MessageDlg('Completado!', MtInformation, [mbOK],0) = mrok then
      Application.Terminate;
    end else if MessageDlg('Archivo invalido!', MtInformation, [mbOK],0) = mrok then
      Application.Terminate;
       end;
end;

gracias!!
Responder Con Cita
  #7  
Antiguo 12-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.

Si queres evaluar el resultado de ShellExecute podrías hacer algo como:
Código Delphi [-]
...
var
  HINSTANCE: Integer;
  ErrorMSG: string;
begin
  OpenDialog1.Filter:= 'Archivos de registro|*.REG';
  with OpenDialog1 do
    if Execute then
    begin
      HINSTANCE:= ShellExecute(Handle,  'open', 'C:\HAND.CMD', PChar(GetShortName(FileName)), nil, SW_NORMAL);
      if HINSTANCE < 32 then
      begin
        case HINSTANCE of
          0: ErrorMSG:= 'Memoria o recursos insuficientes';
          ERROR_FILE_NOT_FOUND: ErrorMSG:= 'Archivo no encontrado';
          ERROR_PATH_NOT_FOUND: ErrorMSG:= 'Ruta no encontrada';
          SE_ERR_ACCESSDENIED:  ErrorMSGr:= 'Acceso denegado';
          //...
        end;
        MessageBox(Handle, PChar(ErrorMSG), 'ERROR', MB_ICONERROR + MB_OK);
        Application.Terminate;
       end;
    end;
end;

Un saludo.
__________________
Daniel Didriksen

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



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
Error de parametros al intentar abrir un archivo Word ilichhernandez OOP 7 20-05-2007 21:31:02
Abrir cualquier tipo de archivo desde mi aplicación Albano Varios 3 06-10-2006 20:48:31
como abrir un archivo ? martita Varios 2 09-08-2005 00:38:34
Como abrir un archivo .EXE? Albano Varios 4 29-05-2005 14:37:43
abrir archivo web desde aplicacion vetustas Internet 5 16-12-2003 00:02:48


La franja horaria es GMT +2. Ahora son las 04:38:40.


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