Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2012
Atzael Atzael is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 10
Poder: 0
Atzael Va por buen camino
Post Ayuda con guardar configuracion

Saludos a todos soy yo de nuevo ante todo gracias por la ayuda del tema anterior
tengo otro problema,
mi aplicación tiene un Dialogs
eso hace que pueda buscar entre carpetas la ubicación de un .exe cualquiera .
ahora mi pregunta es ,
ejemplo. ese botón con el OpenDialogs me hace abrir el archivo para ubicar
c:/programas/info.exe
pero al cerrar vuelve a estar en blanco
y para no estar asiendo ese mismo prosedimiento cada vez que habrá la aplicación
como puedo hacer que se guarde la configuración sin necesidad de volverlo hacer

espero me este expresado bien

espero su ayuda
gracias por todo
saludos
Responder Con Cita
  #2  
Antiguo 20-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Podés almacenar la última ruta en un [archivo .INI] (modo usado bajo windows 3.1) o hacerlo en el [registro de windows] (usado a partir de windows 95).

Te pongo un ejemplo muy simple de como podrías hacer lo que buscas de este último modo:
Código Delphi [-]
...

implementation

uses Registry;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TRegistry.Create do
  try
    RootKey:= HKEY_CURRENT_USER;
    if OpenKey('tuAplicacion\OpenDialog1', False) then
      OpenDialog1.InitialDir:= ReadString('InitPath');
  finally
    CloseKey;
    Free;
  end;
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  with TRegistry.Create do
  try
    RootKey:= HKEY_CURRENT_USER;
    if OpenKey('tuAplicacion\OpenDialog1', True) then
      WriteString('InitPath', OpenDialog1.InitialDir);
  finally
    CloseKey;
    Free;
  end;
end;
'tuAplicacion\Opendialog1' y 'InitPat' son valores arbitrarios y podés cambiarlos a tu gusto.

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 20-11-2012 a las 00:56:33.
Responder Con Cita
  #3  
Antiguo 20-11-2012
Atzael Atzael is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 10
Poder: 0
Atzael Va por buen camino
omg, intente hacerlo x.x , esto si me hizo volar xD >_< no me sale, algo debo estar asiendo mal ..!!
no habrá un ejemplo que puedan subir en ZIP¨para poder guiarme por favor
si no fuera tanto pedir
ante todo gracias

saludos
Responder Con Cita
  #4  
Antiguo 20-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 Atzael Ver Mensaje
omg, intente hacerlo x.x , esto si me hizo volar xD >_< no me sale, algo debo estar asiendo mal ..!!
no habrá un ejemplo que puedan subir en ZIP¨para poder guiarme por favor
si no fuera tanto pedir
ante todo gracias

saludos
Por supuesto que no!

El ejemplo es muy simple, sólo consta de un TOpenDialog que se ejecuta en el evento OnClick de un TButton y el código que previamente te puse.

Ejecutá el ejemplo y elegí algún archivo de alguna carpeta. Salí y ejecutalo nuevamente y verás que "memoriza" la última carpeta en que fué seleccionado un archivo.

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 21-11-2012 a las 01:50:07.
Responder Con Cita
  #5  
Antiguo 21-11-2012
Atzael Atzael is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 10
Poder: 0
Atzael Va por buen camino
Post

gracias por su ayuda que me dan >_< pude hacer el código usando un archivo .INI para que se guarde las configuraciones
que se hagan y no se pierdan al cerrar el proyecto
pero tengo un problema creo que hace conflicto al seleccionar el archivo
cuando están separados funcionan de lo mas normal
Aquí Dejo La muestra del Proyecto , pero esta con el error haber si me dan la mano de solucionarlo

Código SQL [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, ExtCtrls, XPMan, IniFiles;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    Timer1: TTimer;
    XPManifest1: TXPManifest;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MyIni : TIniFile;
  MyString : String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  Var
  diretorio : String;
begin
  if opendialog1.Execute then
showmessage(extractfiledir(opendialog1.FileName));
edit1.Text := OpenDialog1.FileName;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   WinExec(PChar('"'+Edit1.Text),SW_SHOW);
end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin
  MyIni := TIniFile.Create(GetCurrentDir+'\Ini\archivo1.ini');
  MyIni.WriteString('Config', 'Edit', Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
MyIni := TIniFile.Create(GetCurrentDir+'\Ini\archivo1.ini');
Edit1.Text := MyIni.ReadString('Config', 'Edit', Edit1.Text);
end;

end.

Si Quito el código del INI la selección del .exe es estable y funciona normal
pero con la Adicionar el código INI sale un error, amenos que quite el código de selección de .exe
por separados funcionan de lo mas normal normal,

mi pregunta es como hacer que funcionen juntos
seleccionando la ruta del exe y se guarde en el Ini sin salir error


saludos

disculpen las molestias ando empilado en seguir aprendiendo XD >__<
Responder Con Cita
  #6  
Antiguo 21-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Aunque la tendencia es usar el registro de windows, si te decidiste por usar archivos .INI, básicamente la lógica es similar:
Código Delphi [-]
...
implementation

uses IniFiles;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TIniFile.Create(ExtractFilePath(Application.ExeName)+'Ini\Archivo1.INI')do
  try
    Edit1.Text:= ReadString('CONFIG','Edit','');
  finally
    Free;
  end;
end;

// ...

procedure TForm1.FormDestroy(Sender: TObject);
begin
 with TIniFile.Create(ExtractFilePath(Application.ExeName)+'Ini\Archivo1.INI')do
  try
     WriteString('CONFIG', 'Edit', Edit1.Text);
  finally
    Free;
  end;
end;
En tu caso creo que el problema se produce por no determinar bién la ubicación del archivo .INI al estar usando la funcion GetCurrentDir para obtenerla. Bién podría pasar que el directorio que era el actual al leer el archivo ini, hubiera cambiado y ser otro al momento de guardarlo.

Lo mas lógico es situar el archivo ini en la misma carpeta en que reside la aplicación, o en una carpeta dependiente de ella. Ya que esta ruta se puede obtener sin lugar a dudas mediante la función ExtractFilePath y la propiedad ExeName del objeto Application, tál como te puse en el código próximo anterior.

Por supuesto que en tu caso debe existir la carpeta '\Ini' como hija de la carpeta donde esta la aplicación.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 21-11-2012
Atzael Atzael is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 10
Poder: 0
Atzael Va por buen camino
Me salio , Muchas gracias por las ideas que dan, ya pude completar lo que estaba buscando , ahora a armar la aplicación
gracias ecfisa las ideas que me dices , me ayudaron a pensar un poco mas :3

cualquier otra consulta los estare molestando >_<

saludos
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
Guardar configuración de PrinterSetupDialog BlueSteel Impresión 10 09-07-2007 19:26:30
guardar configuracion wireless anubis Windows 0 17-05-2007 06:14:16
Guardar la configuracion en un archivo razor7 Varios 2 14-05-2007 06:15:37
Guardar Configuracion de Delphi 7 Paradiso Varios 1 06-02-2006 12:41:13
Guardar configuración del programa Crandel Varios 2 29-08-2005 18:03:46


La franja horaria es GMT +2. Ahora son las 22:12:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi