gpt4 book ai didi

delphi - 如何保存 Tlistview 布局

转载 作者:行者123 更新时间:2023-12-03 18:34:49 24 4
gpt4 key购买 nike

如何在 Delphi 2007 中保存 Tlistviews 布局?

我被要求编写一些代码以允许用户重新排序 TListview 中的列(以及我们应用程序中的所有 TListviews),我有代码工作(通过操纵列索引并将宽度设置为零以隐藏不需要的列)但现在我需要一种方法来保存 View 的状态何时形成退出。

做这个的最好方式是什么?我考虑过序列化,但我不需要数据或排序顺序,所以这对我来说有点矫枉过正。

需要思考的一些事情
它需要基于每个用户
它需要灵活,以防我们在 ListView 中间添加一个新列
不保证列标题是唯一的
ListView 名称在整个应用程序中可能不是唯一的

有任何想法吗?

最佳答案

如果您只想保存和加载数据的特定部分,您可以将其存储在 ini 或 xml 文件中。
可以将一般数据写入文件。列是另一个问题。您需要为每一列找到一个唯一的标识。 ini 可能是这样的:

[Settings]

[Col_1]
position=1
width=500
title=hello world
align=left
sort=ascending

.. etc for more fields and more columns.

如果使用 listview helper 类,则只需编写一次代码:
TListviewHelper = class helper for TListView;
public
procedure SaveToFile(const AFilename: string);
procedure LoadFromFile(const AFileName: string);
end;

procedure TListviewHelper.SaveToFile(const AFilename: string);
var
ini : TIniFile;
begin
ini := TIniFile.Create(AFileName);
try
// Save to ini file
finally
ini.Free;
end;
end;

procedure TListviewHelper.LoadFromFile(const AFileName: string);
var
ini : TIniFile;
begin
ini := TIniFile.Create(AFileName);
try
// Load from ini file
finally
ini.Free;
end;
end;

如果 TListviewHelper 在范围内,您可以访问额外的方法。

关于delphi - 如何保存 Tlistview 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/271598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com