给你一段用注册表保存的例子,也可用.INI文件保存。//在窗体的 OnShow 事件中加入,读取
Reg := TRegistry.Create;
try
if Reg.OpenKey('Software\天盛科技\MainWindows',False) then
begin
if Reg.ValueExists('SelectTree') then tv1.Items.Item[Reg.ReadInteger('SelectTree')].Selected := True;
if Reg.ValueExists('SelectList') then
if Reg.ReadInteger('SelectList') <> 65535 then
lv1.Items.Item[Reg.ReadInteger('SelectList')].Selected := True;
if Reg.ValueExists('WindowsTop') then Top := Reg.ReadInteger('WindowsTop');
if Reg.ValueExists('WindowsLeft') then Left := Reg.ReadInteger('WindowsLeft');
if Reg.ValueExists('WindowsWidth') then Width := Reg.ReadInteger('WindowsWidth');
if Reg.ValueExists('WindowsHeight') then Height := Reg.ReadInteger('WindowsHeight');
if Reg.ValueExists('WindowState') then WindowState := TWindowState(Reg.ReadInteger('WindowState'));
if Reg.ValueExists('WindowsTreeWidth') then panel1.Width := Reg.ReadInteger('WindowsTreeWidth');
if Reg.ValueExists('WindowsListHeight') then Panel5.Height := Reg.ReadInteger('WindowsListHeight');
end;
finally
Reg.Free;
end;//在窗体的 OnDestroy 事件中保存
Reg := TRegistry.Create;
try
Reg.OpenKey('Software\天盛科技\MainWindows',True);
Reg.WriteInteger('SelectTree',tv1.Selected.AbsoluteIndex);
if lv1.Selected <> nil then
Reg.WriteInteger('SelectList',lv1.Selected.Index)
else
Reg.WriteInteger('SelectList',65535);
Reg.WriteInteger('WindowState',Ord(WindowState));
if WindowState <> wsMaximized then
begin
Reg.WriteInteger('WindowsTop',Top);
Reg.WriteInteger('WindowsLeft',Left);
Reg.WriteInteger('WindowsWidth',Width);
Reg.WriteInteger('WindowsHeight',Height);
end;
Reg.WriteInteger('WindowsTreeWidth',Panel1.Width);
Reg.WriteInteger('WindowsListHeight',Panel5.Height);
//Reg.WriteInteger('WindowsTreeHeight',Height);
finally
Reg.Free;
Reg := TRegistry.Create;
try
if Reg.OpenKey('Software\天盛科技\MainWindows',False) then
begin
if Reg.ValueExists('SelectTree') then tv1.Items.Item[Reg.ReadInteger('SelectTree')].Selected := True;
if Reg.ValueExists('SelectList') then
if Reg.ReadInteger('SelectList') <> 65535 then
lv1.Items.Item[Reg.ReadInteger('SelectList')].Selected := True;
if Reg.ValueExists('WindowsTop') then Top := Reg.ReadInteger('WindowsTop');
if Reg.ValueExists('WindowsLeft') then Left := Reg.ReadInteger('WindowsLeft');
if Reg.ValueExists('WindowsWidth') then Width := Reg.ReadInteger('WindowsWidth');
if Reg.ValueExists('WindowsHeight') then Height := Reg.ReadInteger('WindowsHeight');
if Reg.ValueExists('WindowState') then WindowState := TWindowState(Reg.ReadInteger('WindowState'));
if Reg.ValueExists('WindowsTreeWidth') then panel1.Width := Reg.ReadInteger('WindowsTreeWidth');
if Reg.ValueExists('WindowsListHeight') then Panel5.Height := Reg.ReadInteger('WindowsListHeight');
end;
finally
Reg.Free;
end;//在窗体的 OnDestroy 事件中保存
Reg := TRegistry.Create;
try
Reg.OpenKey('Software\天盛科技\MainWindows',True);
Reg.WriteInteger('SelectTree',tv1.Selected.AbsoluteIndex);
if lv1.Selected <> nil then
Reg.WriteInteger('SelectList',lv1.Selected.Index)
else
Reg.WriteInteger('SelectList',65535);
Reg.WriteInteger('WindowState',Ord(WindowState));
if WindowState <> wsMaximized then
begin
Reg.WriteInteger('WindowsTop',Top);
Reg.WriteInteger('WindowsLeft',Left);
Reg.WriteInteger('WindowsWidth',Width);
Reg.WriteInteger('WindowsHeight',Height);
end;
Reg.WriteInteger('WindowsTreeWidth',Panel1.Width);
Reg.WriteInteger('WindowsListHeight',Panel5.Height);
//Reg.WriteInteger('WindowsTreeHeight',Height);
finally
Reg.Free;
如果是每个窗体的每个控件,也可以采取这种方式吗?
对于字体颜色等,怎样读取呢?好像是不识别的呀?
那么字体呢? 它是TFont,难道可以当作Integer or String?