Hola richy08.
Para no dejarte la pelota picando, te pongo un ejemplo de como hacerlo en ambos casos.
Usando
Registry:
Código Delphi
[-]
...
implementation
uses Registry;
var
CurrentTab: Integer = 0;
procedure TForm1.FormCreate(Sender: TObject);
var
i,j: Integer;
e : TEdit;
begin
with TRegistry.Create do
try
RootKey:= HKEY_CURRENT_USER;
if OpenKey('MiProg\PageCtrl',False) then
begin
with PageControl1 do
begin
for i := 0 to PageCount - 1 do
for j := 0 to Pages[i].ControlCount-1 do
if Pages[i].Controls[j] is TEdit then
begin
e := TEdit(Pages[i].Controls[j]);
e.Text := ReadString(e.Name+'Text');
e.Color:= ReadInteger(e.Name+'Color');
end;
CloseKey;
ActivePageIndex := 0;
end;
end;
finally
Free;
end;
end;
procedure TForm1.PageControl1Change(Sender: TObject);
var
i: Integer;
e: TEdit;
begin
with TRegistry.Create do
try
RootKey:= HKEY_CURRENT_USER;
if OpenKey('MiProg\PageCtrl', True) then
begin
with PageControl1 do
begin
for i := 0 to Pages[CurrentTab].ControlCount-1 do
if Pages[CurrentTab].Controls[i] is TEdit then
begin
e := TEdit(Pages[CurrentTab].Controls[i]);
WriteString(e.Name+'Text', e.Text);
WriteInteger(e.Name+'Color', e.Color);
end;
for i := 0 to Pages[ActivePageIndex].ControlCount-1 do
if Pages[ActivePageIndex].Controls[i] is TEdit then
begin
e := TEdit(Pages[CurrentTab].Controls[i]);
WriteString(e.Name+'Text', e.Text);
WriteInteger(e.Name+'Color', e.Color);
end;
CurrentTab := ActivePageIndex;
end;
CloseKey;
end;
finally
Free;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
i, j: Integer;
e: TEdit;
begin
with TRegistry.Create do
try
RootKey:= HKEY_CURRENT_USER;
if OpenKey('MiProg\PageCtrl', True) then
begin
with PageControl1 do
begin
for i := 0 to PageCount - 1 do
for j := 0 to Pages[i].ControlCount-1 do
if Pages[i].Controls[j] is TEdit then
begin
e := TEdit(Pages[i].Controls[j]);
WriteString(e.Name+'Text', e.Text);
WriteInteger(e.Name+'Color', e.Color);
end;
end;
CloseKey
end;
finally
Free;
end;
end;
Usando
IniFiles:
Código Delphi
[-]
...
implementation
uses IniFiles;
var
CurrentTab: Integer = 0;
procedure TForm1.FormCreate(Sender: TObject);
var
i,j: Integer;
e : TEdit;
begin
with TIniFile.Create(ExtractFilePath(Application.ExeName)+'PROG.INI') do
try
with PageControl1 do
begin
for i:= 0 to PageCount - 1 do
for j:= 0 to Pages[i].ControlCount-1 do
if Pages[i].Controls[j] is TEdit then
begin
e := TEdit(Pages[i].Controls[j]);
e.Text := ReadString(e.Name,'Text','');
e.Color:= ReadInteger(e.Name,'Color',clWindow);
end;
ActivePageIndex := 0;
end;
finally
Free;
end;
end;
procedure TForm1.PageControl1Change(Sender: TObject);
var
i: Integer;
e: TEdit;
begin
with TIniFile.Create(ExtractFilePath(Application.ExeName)+'PROG.INI') do
try
with PageControl1 do
begin
for i:= 0 to Pages[CurrentTab].ControlCount-1 do
if Pages[CurrentTab].Controls[i] is TEdit then
begin
e := TEdit(Pages[CurrentTab].Controls[i]);
WriteString(e.Name,'Text', e.Text);
WriteInteger(e.Name,'Color', e.Color);
end;
for i:= 0 to Pages[ActivePageIndex].ControlCount-1 do
if Pages[ActivePageIndex].Controls[i] is TEdit then
begin
e := TEdit(Pages[CurrentTab].Controls[i]);
e.Text := ReadString(e.Name,'Text','');
e.Color:= ReadInteger(e.Name,'Color',clWindow);
end;
CurrentTab := ActivePageIndex;
end;
finally
Free;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
i,j: Integer;
e: TEdit;
begin
with TIniFile.Create(ExtractFilePath(Application.ExeName)+'PROG.INI') do
try
with PageControl1 do
for i:= 0 to PageCount - 1 do
for j:= 0 to Pages[i].ControlCount-1 do
if Pages[i].Controls[j] is TEdit then
begin
e := TEdit(Pages[i].Controls[j]);
WriteString(e.Name,'Text', e.Text);
WriteInteger(e.Name,'Color', e.Color);
end;
finally
Free;
end;
end;
Saludos
