Ver Mensaje Individual
  #2  
Antiguo 07-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 Kurono.

No sé si estoy en lo correcto, pero parece que hay un TButton (btn_Backup) que en su evento OnClick permite realizar un backup cuando el modo es Manual y si el modo es Automático tiene que estár deshabilitado.

Tampoco sé ante que evento debe seleccionarse el modo, ni la procedencia de las variables CONFIG_SECTION y STR_EMPTY. De modo que elegí el evento OnClick de dos TButton para cambiar el estado, así como también usé constantes en reemplazo de las variables.
Funciona correctamente tanto en el evento OnCreate u OnActivate del form, aunque si se usa OnCreate para simplificar, la grabación conviene hacerla en el evento OnClose.

En el ejemplo oculto a Form1 y luego lo hago visible en el evento OnClose de OtroForm para asegurar que el evento OnActivate del primero se dispare.

Form1:
Código Delphi [-]
...
uses IniFiles, Unit2;

{ Activar/Desactivar btn_Backup }
procedure TForm1.FormActivate(Sender: TObject);
begin
  with TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI')) do
  try
    if ReadString('CONFIGURACION', 'Automatico', 'Activado') = 'Activado' then
      btn_Backup.Enabled := False;
    if ReadString('CONFIGURACION','Manual', 'Activado') = 'Activado' then
      btn_Backup.Enabled := True;
  finally
    Free;
  end;
end;

{ Modo automático }
procedure TForm1.btActivarAutomaticoClick(Sender: TObject);
begin
  with TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI')) do
  try
    WriteString('CONFIGURACION', 'Automatico', 'Activado');
    WriteString('CONFIGURACION', 'Manual', 'Desactivado');  // Podría ser cualquier cadena <> de 'Activado'
  finally
    Free;
  end;
end;

{ Modo Manual }
procedure TForm1.btActivarManualClick(Sender: TObject);
begin
  with TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI')) do
  try
    WriteString('CONFIGURACION', 'Automatico', 'Desactivado');
    WriteString('CONFIGURACION', 'Manual', 'Activado')
  finally
    Free;
  end;
end;

{ Llamar a OtroForm }
procedure TForm1.btOtroFormClick(Sender: TObject);
begin
  Visible:= False;
  with TOtroForm.Create(Self) do
  try
    ShowModal;
  finally
    Free;
  end;
end;
...

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

uses Unit1;
...
procedure TOtroForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Form1.Visible:= True;
  Action:= caFree;
end;
Espero que el ejemplo te sea de utilidad.

Un saludo.
__________________
Daniel Didriksen

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