【发布时间】:2016-03-24 09:24:42
【问题描述】:
如何将列表框的内容保存到文件当计算机关机或睡眠,或重新启动 ??? 我用的是德尔福 XE7,
我确实保存了文件,我没有问题!
但我想在电脑关机时保存文件。
更新我的代码和问题:
我的问题是,当我的项目在后台运行时,两个事件 OnClose 和 OnDestroy 都不起作用!
如果项目“不在后台”正常工作,那么这两个事件都可以正常工作!
我想出了我的问题,这是我在后台进程中工作的项目,我添加此行来执行此操作 Application.MainFormOnTaskbar := False; Application.ShowMainForm := False; 如果我让我的项目在后台运行事件 onClose 和 onDestroy肯定不行,
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
str :TStringList;
i : integer;
begin
str := TStringList.Create;
for i := 0 to ListBox1.Count-1 do
str.Add(ListBox1.Items.Strings[i]);
try
str.SaveToFile('D:\test1.txt', TEncoding.UTF8);
finally
str.Free;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
str :TStringList;
i : integer;
begin
str := TStringList.Create;
for i := 0 to ListBox1.Count-1 do
str.Add(ListBox1.Items.Strings[i]);
try
str.SaveToFile('D:\test15.txt', TEncoding.UTF8);
finally
str.Free;
end;
end;
【问题讨论】:
-
当系统关闭时,您的应用程序将被关闭,然后您可以保存文件。重启也是如此。我假设您想在应用程序关闭时保存文件,而不仅仅是在系统关闭时保存文件。睡眠不一样。您需要以另一种方式检测。
-
大卫先生,我尝试保存文件,在销毁事件和关闭事件时!它没有工作!
-
@DavidHeffernan,我想出了我的问题,这是我在后台进程中工作的项目,我添加这行来执行此操作
Application.MainFormOnTaskbar := False;Application.ShowMainForm := False;如果我让我的项目在后台进程中运行事件onClose和onDestroy肯定不行,我更新我的问题并放上我的代码。 -
并非如此。我不明白为什么你很乐意让程序关闭而不采取行动,而是想在系统关闭时做点什么。我不明白您为什么不阅读 MSDN 文档。而且我不想花更多时间战斗。
标签: windows delphi sleep shutdown delphi-xe7