Delphi - Dr Juzam” RE:Ayuda con OpenDialog

 
Vista:

Dr Juzam” RE:Ayuda con OpenDialog

Publicado por Carmen (20 intervenciones) el 17/04/2007 17:09:47
Hola buen dia:

Una vez mas dando lata anteriormente ya habia mandado un codigo que tengo y el Dr Juzam me ayudo a resolver mi duda, ahora bien tengo un opendialog que ya me selecciona mas de un archivo al querer abrir alguno, pero mi situacion ahora es que en el ultimo directorio que haya yo activado en ese debera quedarse, esto es por ejemplo:
Si tengo en la unidad
C:\
Doc1.doc
Doc2.doc
Doc3.doc

C:\ Carpeta1
archivoA
archivoB
archivoC

C:\ Propios
archivoX
archivoY
archivoZ

Si mi ultima consulta fue a C:\ Carpeta1, la proxima vez que ejecute mi palicacion con el opendialog que vuelba a aparecer C:\ Carpeta1

Ojala alguien pueda ayudarme de antemano mil gracias y que tod@s tengan un buen dia!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por E.T. (1244 intervenciones) el 17/04/2007 17:57:19
Puedes intentar la siguiente linea en el evento OnCanClose del dialogo, directorio es tipo string, esto funciona si abres un archivo, de lo contrario no se guardará el directorio, si lo pones en el evento OnClose sin abrir un archivo se correrá una carpeta hacia atrás, y si lo pones en OnFolderChange y no cambias de directorio igual se correrá una carpeta hacia atrás

directorio:=ExtractFileDir(OpenDialog1.FileName);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por Carmen (20 intervenciones) el 17/04/2007 18:13:47
Disculpa una molestia mas como lo puedo emplear, de hecho lo intente pero me sigue abriendo desde el directorio raiz y no del ultimo consultado me podrias orientar?
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por E.T. (1244 intervenciones) el 17/04/2007 18:20:09
Upss, lo siento se me pasó algo:

directorio:=ExtractFileDir(OpenDialog1.FileName);
OpenDialog1.InitialDir:=directorio;

Así sería completo ó

OpenDialog1.InitialDir:=ExtractFileDir(OpenDialog1.FileName);

es lo mismo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por E.T. (1 intervención) el 17/04/2007 18:22:28
Se me pasó algo de nuevo, la manera que elijas,no importa cual, la asignación al initialdir se debe de hacer miestras se está ejecutando o antes de ejecutar el open dialog
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por Carmen (20 intervenciones) el 17/04/2007 18:47:52
Hola oye el codigo que tengo es el siguiente me puedes indicar si es correcto, gracias, que es lo que me falta??:

unit UAbrir;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CustomizeDlg, StdCtrls, ComCtrls, ToolWin, FileCtrl, Grids,
Outline, DirOutln;

type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin
OpenDialog1 := TOpenDialog.Create(Self);
OpenDialog1.Options := OpenDialog1.Options+[ofAllowMultiSelect];
If OpenDialog1.Execute then

end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por E.T. (1244 intervenciones) el 17/04/2007 19:10:30
Bueno, el codigo está correcto, pero como creas el dialogo en ejecución, yo no lo he intentado, al cerrarlo pondrias las lineas que te pasé, no se como hacerlo, deja investigo un poco y si puedo te lo pongo aquí
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por E.T. (1244 intervenciones) el 17/04/2007 19:19:29
Mejor crealo en edición (insertalo en la forma), cabia las opciones de Allow,
y pones las lineas que te dí:

en un botón pones

opendialog1.execute;

y en el evento OnCLose o OnCanClose o OnFolderChange

pones las lineas que te había dado, sino tendrias que hacer algo así

if opendialog1.OnFolderChange=(no se que) then
lineas que te dí

el "no se que" es eso, no se que poner ahí en realidad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por Carmen (20 intervenciones) el 17/04/2007 19:57:45
Hola nuevamente, sabes ya lo hice pero no me sigue arrojando el directorio inicial y no el que yo activo....
:(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE: Dr Juzam” RE:Ayuda con OpenDialog

Publicado por E.T. (1244 intervenciones) el 17/04/2007 20:33:37
Ok intenta lo siguiente

en el apartado private declara las siguientes variables

directorio:string;
flag:boolean;

Al crearse la forma la siguiente

directorio:=ExtractFileDir(Application.ExeName);

En un botón lo siguiente

flag:=false;
OpenDialog1.InitialDir:=directorio;
OpenDialog1.Execute;
if flag then
directorio:=ExtractFilePath(OpenDialog1.FileName);

En el evento OnCanClose del dialogo lo siguiente

flag:=true;
{Además de lo que deseas hacer con los archivos}

Esto Funciona así:

Ejecutas tu aplicación y el primer directorio que te muestra el opendialog seá en el que está guardada la aplicación, das click al botón y buscas tus archivos, si se abre algun o algunos archivos el directorio quedará guardado, de lo contrario si cierras el dialogo sin abrir archivos y abres de nuevo el dialogo éste se abrirá como en la ves anterior (donde está guardada la aplicación), ten en cuenta eso: si no abres ningún archivo no abrá cambio en el opendialog, pero si lo que deseas es que cuando cierres la aplicación y la abras de nuevo se abra el ultimo directorio debes de guardar la variable directorio en un archivo de texto y cargarla cuando se ejecute la aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar