Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-05-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Directorio predeterminado de búsqueda de archivos con TOpenDialog

Hola me esta pasando algo extraño con el OpenDialog, un usuario aprieta un boton y el opendialog lo abre en un directorio predeterminado y elige un archivo, siempre los archivos estan en ese directorio por defecto. Pero... si dentro del dialogo me voy a otro directorio, cuando cierro el boton y abro el open dialogo de vuelta no me hace caso al initialDir prefijado, lo abre en ese nuevo directorio donde estuvo el usuario. Es un defecto del opendialog?.
Código Delphi [-]
OpenDialog1.FileName:= '';
opendialog1.InitialDir := 'c:\Carga';
opendialog1.
if not OpenDialog1.Execute then Exit;
 edit17.Text := ExtractFileName(OpenDialog1.FileName);

Última edición por nlsgarcia fecha: 22-05-2015 a las 18:15:58. Razón: Sintaxis Delphi
Responder Con Cita
  #2  
Antiguo 22-05-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con casi 300 mensajes y todavía no pones las etiquetas correctas al código ni escribes títulos descriptivos a las preguntas
Responder Con Cita
  #3  
Antiguo 22-05-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Opendialog

Perdon lo escribi rapido...
Responder Con Cita
  #4  
Antiguo 22-05-2015
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Y la tercera linea compila?

opendialog1.

o es un error?

Saludos
Responder Con Cita
  #5  
Antiguo 22-05-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Opendialog predeterminar directorio

Perdon lo habia copiado rapido como dije antes, funciona pero si cambio directorio dentro del opendialog, hago click sobre un archivo PDF y vuelvo a entrar me queda como predefinido el nuevo directorio.
Código Delphi [-]
OpenDialog1.FileName:= '';
opendialog1.InitialDir := 'c:\carga';
if not OpenDialog1.Execute then Exit;
 edit17.Text := ExtractFileName(OpenDialog1.FileName);
Responder Con Cita
  #6  
Antiguo 22-05-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
Empezado por shoulder
...un usuario aprieta un botón y el TOpenDialog lo abre en un directorio predeterminado y elige un archivo...si dentro del dialogo me voy a otro directorio, cuando cierro el botón y abro el open dialogo de vuelta no me hace caso al InitialDir prefijado, lo abre en ese nuevo directorio...¿Es un defecto del TOpenDialog?...


Es el comportamiento estándar del componente TOpenDialog.

Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
  #7  
Antiguo 22-05-2015
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 shoulder.

Si no vacias la propiedad FileName se sobreescribirá el valor de InitialDir. Para conservar el valor de FileName y luego utilizarlo, podrías hacer:
Código Delphi [-]
...
implementation

var
  SelectedFileName: string;  // almacena valor de propiedad FileName

procedure TForm1.FormCreate(Sender: TObject);
begin
  with OpenDialog1 do
  begin
    InitialDir:= 'C:\WINDOWS';
    //...
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with OpenDialog1 do
    if Execute then
    begin
      SelectedFileName := FileName;
      FileName         := '';
      //...
    end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 22-05-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Opendialog predeterminar directorio

Hola me sigue dando el mismo error, lo extraño es que si como inicio coloco el directorio c:\carga despues cambio directorio, cierro el programa y lo recompilo y me abre en el nuevo directorio ultimo elegido no hace caso al inicialdir.
Responder Con Cita
  #9  
Antiguo 22-05-2015
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Yo utilizo este codigo y el cambio se realiza correctamente.

Código Delphi [-]
OpenDialog1.Filename:='';
                OpenDialog1.InitialDir:='C:\Rebuts_1.0\Fitxers\Rebuts\Capçalera';
                F_Confirmacio := TF_Confirmacio.Create(self);
                F_Confirmacio.Label1.Caption := 'Importem arxiu capçalera';
                try
                        if F_Confirmacio.ShowModal = mrok then
                        begin
                                CSVCap_Hist.Close;
                                if OpenDialog1.Execute then
                                begin
                                        CSVCap_Hist.Filename := OpenDialog1.FileName;
                                end;
                                CSVCap_Hist.Open;

En el opendialog y como initialdir tengo puesto:

C:\Rebuts_1.0\Fitxers\

Saludos

Josep
Responder Con Cita
  #10  
Antiguo 22-05-2015
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 shoulder
Cita:
Empezado por shoulder Ver Mensaje
Hola me sigue dando el mismo error, lo extraño es que si como inicio coloco el directorio c:\carga despues cambio directorio, cierro el programa y lo recompilo y me abre en el nuevo directorio ultimo elegido no hace caso al inicialdir.
Si, vas a tener que almacenar la ruta también...

Código Delphi [-]
...
implementation

var
  InitialDir  : string = 'C:\WINDOWS';
  SelFileName : string;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OpenDialog1.FileName:= '';
  OpenDialog1.InitialDir := InitialDir;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with OpenDialog1 do
    if Execute then
    begin
      SelFileName := FileName;    // salvar nombre
      FileName    := '';
      InitialDir  := InitialDir;  // restaurar ruta        
      ShowMessage(SelFileName);
    end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 22-05-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Opendialog predeterminar directorio

Gracias ahi lo solucione, mi error era si escribo c:\carga en initialDir (no funciona) si escribo c:\carga\ funciona, e hice una pequeña rutina para que siempre controle si esta en el Dir. correcto.
Les dejo como me quedo:

Código Delphi [-]
var
openDialog6 : TOpenDialog;    // Open dialog variable
fijarse : string;
begin
openDialog6 := TOpenDialog.Create(self);
opendialog6.InitialDir:= 'C:\carga\';
openDialog6.Filter := 'Pdf files (*.pdf)|*.PDF'; ; ;
// Only allow existing files to be selected
openDialog6.Options := [ofFileMustExist];
// Allow only .dpr and .pas files to be selected

with OpenDialog6 do
    if Execute then
     begin
       fijarse := ExtractFileDir(OpenDialog6.FileName);
       if fijarse <> 'C:\carga' then
         begin
          showmessage('Los archivos deben grabarse y buscarse dentro de c:\carga');
          edit17.Clear;
         end
       else
           edit17.Text := ExtractFileName(OpenDialog6.FileName);
     end;
Responder Con Cita
  #12  
Antiguo 23-05-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por shoulder Ver Mensaje
Perdon lo escribi rapido...
Bueno, a veces pasan esas cosas, gracias por tu colaboración


.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Cómo filtrar archivos por tamaño en un TOpenDialog ebreton31 Varios 1 01-12-2008 19:56:37
Borrar archivos de un directorio nelem Internet 6 29-10-2007 16:04:00
Leer archivos de directorio carlosegs11 Varios 6 20-06-2007 20:34:50
Aplicacion predeterminado para abrir archivos Sotrono Varios 1 19-12-2004 15:22:58
Borrar archivos de un directorio Magneto Varios 1 13-08-2003 13:20:34


La franja horaria es GMT +2. Ahora son las 01:22:27.


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