Delphi 如何在程序关闭/重新打开期间保存变量值?

Delphi 如何在程序关闭/重新打开期间保存变量值?,delphi,delphi-7,Delphi,Delphi 7,基本上,我所要做的就是为我的项目编写代码,以便它在下次运行程序时存储任何保存的变量。现在,一旦我关闭并重新打开程序,它显然会重置任何变量。有什么简单的方法可以做到这一点(请记住,我对编程非常陌生) 我给你举个例子。如果我有一个简单的程序,当我按下一个按钮时,它会向一个计数器中添加1。现在,下次我打开该程序并再次按下按钮时,我想添加到上一个计数器中 提前感谢您可以使用两个简单的例程从注册表中保存和加载,如下所示: uses SysUtils, Registry; ... function Re

基本上,我所要做的就是为我的项目编写代码,以便它在下次运行程序时存储任何保存的变量。现在,一旦我关闭并重新打开程序,它显然会重置任何变量。有什么简单的方法可以做到这一点(请记住,我对编程非常陌生)

我给你举个例子。如果我有一个简单的程序,当我按下一个按钮时,它会向一个计数器中添加1。现在,下次我打开该程序并再次按下按钮时,我想添加到上一个计数器中


提前感谢

您可以使用两个简单的例程从注册表中保存和加载,如下所示:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序加载时,您可以这样使用它们:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序退出时,您将保存计数器,如下所示:

RegistrySaveString( 'My program', 'counter', IntToStr(counter) );

您可以使用两个简单的例程从注册表中保存和加载,如下所示:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序加载时,您可以这样使用它们:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序退出时,您将保存计数器,如下所示:

RegistrySaveString( 'My program', 'counter', IntToStr(counter) );

您可以使用两个简单的例程从注册表中保存和加载,如下所示:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序加载时,您可以这样使用它们:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序退出时,您将保存计数器,如下所示:

RegistrySaveString( 'My program', 'counter', IntToStr(counter) );

您可以使用两个简单的例程从注册表中保存和加载,如下所示:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序加载时,您可以这样使用它们:

uses   SysUtils, Registry;
...
function RegistryLoadString(const sKey, sItem, sDefVal: string ): string;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    result := reg.ReadString('', sItem, sDefVal);
  finally
    reg.Free;
  end;
end;

procedure RegistrySaveString(const sKey, sItem, sVal: string);
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.Create(sKey);
  try
    reg.WriteString('', sItem, sVal + #0);
  finally
    reg.Free;
  end;
end;
counter := StrToInt(RegistryLoadString( 'My program', 'counter', '0' ));
在应用程序退出时,您将保存计数器,如下所示:

RegistrySaveString( 'My program', 'counter', IntToStr(counter) );


您需要保存这些值(到文件或注册表)在应用程序关闭之前,在应用程序启动时加载它们。哪个组件或代码应该对我有帮助?有一些组件,但你应该在这里请求它们。JEDI有一个设置组件。你可以保存在INI文件、JSON文件、XML文件等中,或者保存到注册表中。1.清点所有要保存的数据。2.根据文件存储的装载和结构选择(XML、INI)或注册表。3.谷歌Delphi+您选择的技术4.开始构建5.如果需要,返回具体问题值得注意的是,将值保存到SQLLite数据库有时也很有用,特别是当您的状态数据比简单计数器等更复杂时。SQLLite非常容易与Delphi一起使用。您需要保存values(到文件或注册表)在应用程序关闭之前,在应用程序启动时加载它们。哪个组件或代码应该对我有帮助?有一些组件,但你应该在这里请求它们。JEDI有一个设置组件。你可以保存在INI文件、JSON文件、XML文件等中,或者保存到注册表中。1.清点所有要保存的数据。2.根据文件存储的装载和结构选择(XML、INI)或注册表。3.谷歌Delphi+您选择的技术4.开始构建5.如果需要,返回具体问题值得注意的是,将值保存到SQLLite数据库有时也很有用,特别是当您的状态数据比简单计数器等更复杂时。SQLLite非常容易与Delphi一起使用。您需要保存values(到文件或注册表)在应用程序关闭之前,在应用程序启动时加载它们。哪个组件或代码应该对我有帮助?有一些组件,但你应该在这里请求它们。JEDI有一个设置组件。你可以保存在INI文件、JSON文件、XML文件等中,或者保存到注册表中。1.清点所有要保存的数据。2.根据文件存储的装载和结构选择(XML、INI)或注册表。3.谷歌Delphi+您选择的技术4.开始构建5.如果需要,返回具体问题值得注意的是,将值保存到SQLLite数据库有时也很有用,特别是当您的状态数据比简单计数器等更复杂时。SQLLite非常容易与Delphi一起使用。您需要保存values(到文件或注册表)在应用程序关闭之前,在应用程序启动时加载它们。哪个组件或代码应该对我有帮助?有一些组件,但你应该在这里请求它们。JEDI有一个设置组件。你可以保存在INI文件、JSON文件、XML文件等中,或者保存到注册表中。1.清点所有要保存的数据。2.根据文件存储的装载和结构选择(XML、INI)或者注册表。3.谷歌Delphi+你选择的技术4.开始构建5.如果需要,带着特定的问题回来值得注意的是,将值保存到SQLLite数据库有时也很有用,特别是如果你的状态数据比简单的计数器等更复杂的话。SQLLite很容易与Delphi一起使用,不是吗你不是双重空终止吗?你不是双重空终止吗?你不是双重空终止吗