在 Win32 Delphi 应用程序中存储用户首选项和设置的最佳实践是什么?

2023-11-21

我想在我的 Delphi Win32 应用程序中存储用户首选项(颜色、工具栏开/关、面板宽度(以像素为单位))和应用程序设置(最后 10 个文件、默认保存目录、默认打开目录)。这样做的最佳实践是什么?


您有两个主要选择:

  1. 将设置存储在用户配置文件下的文件中。如果您的设置足够简单,那么 INI 文件就可以完美工作。
  2. 将设置存储在注册表中的下HKEY_CURRENT_USER这也是个人资料的一部分。

我个人更喜欢使用注册表,因为它免费提供分层存储。如果您使用文件,那么您必须自己执行此操作,这可能会绑定更复杂的数据。

另一方面,如果您想编写一个便携式应用程序,即可以存储在记忆棒上的应用程序,那么与可执行文件一起放置的用户设置文件就是最佳选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Win32 Delphi 应用程序中存储用户首选项和设置的最佳实践是什么? 的相关文章

  • 在 Delphi 中强制非阻塞临时提示窗口

    我一直在寻找 但找不到解决方案 所以我想也许我应该简单地发布它 这是我想要在 Delphi 2009 中做的事情 在我的应用程序中的某个时刻 我想向用户显示一条消息 这应该是正常的提示窗口 在正常应用程序定义的提示暂停后自动消失 并带有自定
  • 如何更改 Delphi 2010 IDE 中编辑器选项卡的字体大小?

    有谁知道如何更改 Delphi 2010 IDE 中编辑器选项卡的字体大小 我的 1080p 22 显示器的字体太小 无法阅读 而且会导致眼睛疼痛 一些笔记 它不尊重系统的 DPI 设置 因此更改系统设置没有帮助 而且 我现在已经使用 14
  • delphi定时器比定时器服务中断例程更快

    大家好 我被要求为某人维护一个基于 Delphi 5 的程序 该程序使用一个计时器对象每 50 毫秒计时一次 并且在每次计时结束时运行单线程代码块 我只是想知道 如果执行这段代码所花费的时间比计时器滴答间隔长 会发生什么 这会很糟糕吗 例如
  • 如何更新Delphi对象检查器?

    继我最近发布的这个问题之后 组件编辑器可以在多个组件上执行吗 https stackoverflow com questions 14802371 can a component editor be executed on multiple
  • 错误:使用 Microsoft WebService.dll 通过 Delphi7 规范化 XML

    我正在使用 Delphi7 修改旧项目以添加使用证书和签名 经过一番搜索后我发现XML 规范化函数 https learn microsoft com en us previous versions dd815358 v vs 85 但我无
  • 我可以在“Delphi 2007 for Win32”中使用.NET DLL吗?

    是否可以在 Delphi 2007 for Win32 中使用 NET DLL 我尝试以与 ActiveX 组件相同的方式导入 DLL 但它似乎不起作用 组件菜单 gt 导入组件 gt 导入 NET 程序集 是否可能 如果可以 步骤是什么
  • 如何在Delphi XE中通过名称获取类类型引用?

    我实际上正在尝试使用 Rtti 来实现通用方法调用程序 它应该像这样工作 我将提供类名 方法名和参数 调用者将通过调用此类的指定方法来完成其工作 因此 我需要类引用才能获取其 Rtti 信息并寻找我想要调用的方法 有没有办法在不实现我想要使
  • 如何在滚动框上创建缓慢的滚动效果?

    我喜欢在滚动框中平移图像后创建平滑的减慢滚动效果 就像平移地图一样谷歌地图 http maps google com 我不确定它是什么类型 但行为完全相同 当快速移动地图时 当您释放鼠标时它不会立即停止 而是开始减慢速度 有什么想法 组件
  • 如何根据输入的内容过滤组合框的内容?

    我们有一个包含 100 多个项目的组合框 当我们在组合框中输入字符时 我们想要过滤掉项目 例如 如果我们输入 ac 并单击下拉选项 那么我们希望它仅显示以 ac 开头的项目 我怎样才能做到这一点 也许您会更喜欢使用操作系统内置的自动完成功能
  • 按文件类型设置 Vim 空白首选项

    在我的工作中 我需要遵循房屋风格进行缩进 如下所示 编码 html 和 ruby 时有 2 个空格 编码 javascript 时使用制表符 建议使用 tabwidth 4 为每个文件类型指定不同的空白首选项的最佳方法是什么 方法有很多 但
  • Delphi - 在修复 VCL 错误时,单元 x 是用不同版本的 x 编译的

    我正在使用 Delphi XE6 并在我的项目中使用 Datasnap 和 JSON 我想纠正 VCL 单元 System JSON pas 在 TJSONString ToString 函数中 中的一个错误 它应该转义反斜杠字符和引号 为
  • 如何仅使用 TADOQuery 组件将图像插入数据库

    我有一个简单的基本问题 我正在尝试使用将图像插入数据库Insert与其他列值的语句也使用TADOQuery成分 由于代码已经由某人编写 因此我想在此处放置一些虚拟示例代码 以供您澄清相应的步骤 请注意 这可以正常工作TQuery组件 因为我
  • Word 2010 自动化:“转到书签”

    我有一个用 Delphi 7 编写的程序 它打开一个基于模板的新 Word 文档 文档打开后 系统会自动跳转到书签 在模板中预定义 并在其中添加一些文本 以下代码在 Word 2003 中工作正常 但会导致invalid variant o
  • 为什么未初始化的指针会导致内存访问冲突接近 0?

    据说often 但并非总是如此 当你在接近于零的内存位置 比如 89 美元 获得 AV 时 你就有了一个未初始化的指针 但我也在 Delphi 书籍中看到了这一点 嗯 或者它们都是由同一作者写的 Update 引自 Bob Swart 等人
  • 在 Delphi 中使用 XML(将特定数据返回到变量)

    过去几天我一直在尝试使用 Delphi 2010 和 MSXML 我是一个极端的新手 需要一点指导 var MemoryStream TMemoryStream XMLPath String sName String XMLDoc vari
  • 每次 TDbGrid 的选定位置更改时都会触发什么事件?

    我的项目中有一个 TDbGrid 每次更改所选行时我都试图触发一个事件 行中的任何更改都已经更新了链接到同一数据源的所有数据感知控件 但还需要进行其他更改 我需要一个事件处理程序 我认为 OnColEnter 会起作用 根据帮助文件 它在以
  • 将数据从一个数据集结构移动到另一个数据集结构的更快方法(在 TDatasetProvider 中)

    我有一个自定义的 TDatasetProvider 它允许为其提供的任何数据创建新字段 因此 假设您在原始数据集上获得了以下字段 客户ID Name Age 您需要使用显示位图在 DBGrid 上选择它 好吧 你可以 因为我的 DSP 可以
  • 如何在运行时(Delphi/Windows)程序中添加代码?

    我正在Windows XP Delphi 7上工作 我需要在正在运行的程序中添加一些过程 或函数 并且我不想在完成后再次重新编译它 我只有一个具有 5 个功能的主机应用程序来发送不同类型的警报 但是还有其他新的警报类型 所以我必须执行新的功
  • 如何更改 TPageControl 上标签的方向?

    我是 Delphi 的新手 再次强调 我在 1994 年就使用过 Delphi 我现在有 Delphi 2009 Pro 来自Java 我发现对象继承非常晦涩 我的用户想要选项卡位于左侧的选项卡式页面 但是 TPageControl 不允许
  • 在 Delphi 中编程延迟的最佳方法是什么?

    我正在开发的 Delphi 应用程序必须延迟一秒 有时甚至两秒 我想使用最佳实践来对此延迟进行编程 在阅读 stackoverflow 上有关 Delphi Sleep 方法的条目时 我发现了以下两条评论 我遵循这样的格言 如果你觉得需要使

随机推荐

  • jQuery 如果 div 包含此文本,则替换该文本部分

    就像标题所说 我想替换div中文本的特定部分 结构如下 div class text div This div contains some text div 例如 我只想将 包含 替换为 大家好 我无法找到解决方案 您可以使用text方法并
  • 滚动视图中的列表视图我的滚动视图移动到列表视图的顶部。我该如何防止这种情况?

    在此之前 我的滚动视图中有一个列表视图 位于几乎一页滚动的下方 但是一旦我的列表视图被填充 滚动视图就会移动到列表视图的顶部 我该如何解决这个问题 防止这种情况发生 滚动查看 XML
  • 为什么在 Zapier 中使用此代码时会收到 Runtime.MarshalError?

    以下代码给了我 Runtime MarshalError 无法封送响应 Yes 不是 JSON 可序列化 from calendar import monthrange def time remaining less than fourte
  • 如何将新列添加到现有的德鲁伊架构中?

    我创建了一个架构 并将 1TB 数据添加到德鲁伊架构中 然后日志文件版本升级并添加新的两列 然后我想将该数据添加到德鲁伊架构中 但还不能 为了向现有数据源添加新列 您需要执行以下步骤 前往Tasks德鲁伊控制台中的菜单 从列出的数据源中 转
  • 将 ISO 日期转换为 yyyy-mm-dd 格式

    给定集合 name users 结构 id ObjectId 57653dcc533304a40ac504fc username XYZ followers count 31 ts ISODate 2016 06 17T18 30 00 9
  • KMeans 聚类超过 500 万个向量

    我遇到了一个真正的问题 我需要对 500 万个向量进行一些 Kmeans 聚类 每个向量包含大约 32 列 我尝试了 Mahout 它需要 Linux 而我在 Windows 上 我无法使用 Linux 操作系统和任何类型的模拟器 谁能建议
  • Console.Write() - 显示扩展 ascii 字符?

    我能够正确显示标准 ASCII 符号 最多 127 个 例如 heart note 你知道我的意思 我还想展示那些可以用来画墙的东西 比如 U0205 但它不起作用 好吧 它起作用 但它看起来像 我有什么办法可以显示它们吗 谢谢 控制台模式
  • Ruby 错误地解析了 2 位数字年份

    Ruby 正确解析第一个日期 但第二个日期不正确 使用 ruby 1 9 3 和 2 1 2 进行测试 知道如何让它持续工作吗 我们将出生日期设为两位数年份 Date strptime 10 11 89 d m y gt Fri 10 No
  • 如何声明也符合协议的特定类的属性?

    假设我想创建一个属性 它是 UIViewController 的子类 并且也符合协议 MyDelegateProtocol 在 Objective C 中我会写这样的东西 property strong nonatomic UIViewCo
  • 如何在Java中使用自动代理配置脚本

    我的 Internet Explorer 设置为具有用于 Web 访问的自动代理文件 所谓的 PAC 有没有办法在我的 Java 程序上使用它 我的下面的Java代码似乎根本没有使用代理 ArrayList
  • 如何在 R 中指定 3d 绘图的相机视角?

    我想更改我的plotly 3d 散点图的默认相机视角 但从帮助中不清楚应该如何完成此操作 我知道布局参数应包含在命名列表中 但无法使其适用于 眼睛 向上 和 中心 相机参数 https plot ly r reference layout
  • 在 gradle 中将参数传递给编译器和 javadoc

    我正在尝试提供 Gradle 作为现有项目的替代构建系统 该项目利用sun misc Unsafe这会导致像这样的警告 warning Unsafe is internal proprietary API and may be remove
  • git:如何将拉取请求合并到分支中?

    我的情况如下 我有一个开源 github 项目的分支 我在开发分支的分支中的分叉存储库中进行所有开发 在主存储库的开发分支中有一个我需要的未合并的拉取请求 为了测试未合并的拉取请求 我创建了一个新目录并将原点克隆到其中 然后将未合并的请求提
  • 基于 Spring MVC LocaleChangeInterceptor 注解不起作用

    import java util Locale import org springframework context MessageSource import org springframework context annotation B
  • 如何在谷歌协作笔记本中显示绘图输出?

    我搜索了一整天如何在谷歌合作 Jupyter 笔记本中显示绘图的输出 有一个 stackoverflow 问题 还有谷歌合作实验室的官方教程 但它们都不适合我 官方链接 https colab research google com not
  • Flink 一次性消息处理

    我已经设置了一个包含 2 个 JobManager 和 3 个 TaskManager 的 Flink 1 2 独立集群 并使用 JMeter 通过生成 Kafka 消息 事件来对其进行负载测试 然后进行处理 处理作业在 TaskManag
  • Opencv - 如何合并两个图像

    我是 opencv 的新手 我在互联网上搜索是否有如何合并两个图像的示例 但没有找到任何可以帮助我的东西 有人可以帮我提供一些指示或小代码来理解吗 提前致谢 从评论到问题 你说 我不想将第一张图片的一半与第二张图片的另一半混合 我只想打印两
  • 如何获取 WCF 服务正在侦听的端口?

    我有一个 net tcp WCF 服务 我希望操作系统选择它应该侦听的端口 所以我在 URI 中将端口设置为 0 并且netstat确认操作系统已选择 5000 范围内的端口 如何在服务进程内以代码形式找到已选择的实际端口 一些代码显示我已
  • 如何摆脱投影仪中的导航栏?

    如何删除从投影仪乳胶文件生成的每张幻灯片顶部的部分和小节的导航栏 我正在使用 beamerthemesplit 包 Beamer 有不同的主题可供您使用 其中一些包含导航栏 有些则不包含 例如 默认主题不包含任何导航栏 Beamer 提供的
  • 在 Win32 Delphi 应用程序中存储用户首选项和设置的最佳实践是什么?

    我想在我的 Delphi Win32 应用程序中存储用户首选项 颜色 工具栏开 关 面板宽度 以像素为单位 和应用程序设置 最后 10 个文件 默认保存目录 默认打开目录 这样做的最佳实践是什么 您有两个主要选择 将设置存储在用户配置文件下