如何在Lazarus中使用相对文件路径

问题描述 投票:0回答:1

我正在 Lazarus 中使用 SQLite 后端创建一个简单的 CRM,但我不知道如何为 Lazarus 提供数据库文件的相对路径。当我发布应用程序时,这是必需的,因为我不知道不同目标计算机上的完整文件路径是什么。

在Delphi中,我知道您可以将数据库的文件名(没有进一步的文件路径)放入连接器的连接字符串属性中,只要该文件位于项目文件夹中,它就可以工作,但等效于Lazarus (DatabaseName) 不允许将相对文件路径放在那里。

Lazarus论坛上据说有解决方案,但它们看起来很复杂,我不明白它们。

在 Lazarus 上不可能以简单的方式做到这一点吗?在这种情况下,我最好尝试从 Lazarus 运行 Python 以从相对路径获取绝对路径?

我需要在 Windows 和 MacOS 上工作的相对路径

pascal freepascal lazarus
1个回答
2
投票

对我来说,它也从未在 Delphi 中普遍工作,尽管有时取决于您打开项目的方式,它可能在 IDE 中工作。它还可能取决于您用作数据库组件的内容。

无论如何,你可以使用

在Windows上找到工作目录
sExePath := ExtractFilePath(paramstr(0));

对于控制台程序,而对于 GUI 应用程序,您可以这样做

sExePath := ExtractFilePath(Application.ExeName);

然后您可以使用

制作路径
includetrailingpathdelimiters(sExepath+relativepath)

并在启动时设置属性。

© www.soinside.com 2019 - 2024. All rights reserved.