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;
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;
procedure TForm1.btActivarAutomaticoClick(Sender: TObject);
begin
with TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI')) do
try
WriteString('CONFIGURACION', 'Automatico', 'Activado');
WriteString('CONFIGURACION', 'Manual', 'Desactivado'); finally
Free;
end;
end;
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;
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.