小编The*_*ven的帖子

Delphi桌面应用程序的良好数据库需要建议

我正在创建一个用Delphi编写的桌面应用程序,我正在为我的应用程序寻找一个数据库.

我对可用选项的数量感到有些不知所措.我非常感谢其他开发人员根据他们的经验提出的一些建议和见解.

关键因素

  • 低或没有买入成本.

  • 没有配送费.

  • 轻松处理多达35,000条记录,无问题,最高可达100k.

  • 支持多个表(在这种情况下最多10个)

  • Blob支持(二进制对象,图像等)

  • 可以作为应用程序安装集的一部分进行分发.IE用户没有其他人的网站下载数据库安装程序.

  • 可以通过最小化用户交互的安装集进行安装和配置.我的目标用户群在技术上并不倾向.

  • 合理的快速性能.

  • 支持标准SQL语句(或合理的关闭)

  • 支持多个索引

不太重要

  • 数据库安装的大小
  • 一旦安装在用户系统上的数据库大小.

不重要,但如果可用的话很好

  • 多用户支持
  • 加密
  • 可扩展性

database delphi desktop-application delphi-2009

15
推荐指数
3
解决办法
3223
查看次数

如何确定dll文件是使用Delphi还是Lazarus编译为x64或x86位

使用Delphi 2007+或Lazarus(Win64)我正在寻找一种方法来确定dll是否编译为x64或x86?

delphi 64-bit winapi lazarus

7
推荐指数
2
解决办法
2584
查看次数

VirtualStringTree - 在使用对象时更正/处理子节点/子节点的正确方法?

我正在使用Delphi2010并尝试使用VirtualStringTree.

我一直试图让它与对象一起工作,并且在我遵循Philipp Frenzel的Virtual TreeView教程之前没有运气,我在soft-gems.net网站上找到了该教程.到目前为止我提出的工作原理,但我认为我没有正确处理子节点(即子节点).

我唯一能够工作的就是为每个孩子再次链接整个对象,然后只显示我需要的字段 - 但它只是感觉错了.

建议/反馈非常感谢.


我有一些对象列表,我正在尝试与VirtualStringTree连接,我正在尝试实现这样的事情,其中​​一个字段将作为父项的标签,其余字段显示为子节点.

  • 罗伯特莱恩
    • 35
    • 洛杉矶
    • 褐发
  • 简·多伊
    • 19
    • 丹佛
    • 红发

这就是我班级的设置方式.

type
  PTreeData = ^TTreeData;
  TTreeData = record
    FObject : TObject;
  end;

  TCustomerNode = class(TObject)
  private
    fName: string;
    fSex: string;
    fAge: integer;
    fHair: string;
    //...
  public
    property Name: string read fName write fName;
    //...
  end;
Run Code Online (Sandbox Code Playgroud)

一旦我填充了对象,我就将它们添加到另一个基于TList的类(CustomerObjectList),如下所述.

这是我将VirtualStringTree与我的对象列表连接的地方

procedure TfrmMain.btnLoadDataClick(Sender: TObject);
var
  i, j : integer;
  CustomerDataObject: TCustomerNode;
  RootXNode, XNode: PVirtualNode;
  Data: PTreeData;
begin
  vstree.NodeDataSize := SizeOf( TTreeData );

  vstree.BeginUpdate;
  for i …
Run Code Online (Sandbox Code Playgroud)

delphi virtualtreeview delphi-2010 tvirtualstringtree

5
推荐指数
1
解决办法
6466
查看次数

AnsiStrIComp在Delphi 2010中无法比较字符串

我有点困惑,希望得到启发.

我正在为这个项目使用Delphi 2010,我正在尝试比较2个字符串.

使用以下代码失败

if AnsiStrIComp(PAnsiChar(sCatName), PAnsiChar(CatNode.CatName)) = 0 then...
Run Code Online (Sandbox Code Playgroud)

因为根据调试器,只比较每个字符串的第一个字符(即,sCatName"Automobiles",PAnsiChar(sCatName)"A").

我希望能够比较可能使用不同语言的字符串,例如英语和日语.

在这种情况下,我正在寻找匹配,但我有其他功能用于排序等,我需要知道字符串如何比较(小于,等于,大于).

delphi string unicode delphi-2010

3
推荐指数
1
解决办法
1578
查看次数

如何使用Delphi 2010以编程方式确定Windows的性能设置

以下代码是关闭我的应用程序.

procedure TfrmMain.btnClose1Click(Sender: TObject);
var
  i : Integer;
begin
  for i := 255 downto 0 do begin
    frmMain.AlphaBlendValue := i;
    application.ProcessMessages;
  end;

  Close;
end;
Run Code Online (Sandbox Code Playgroud)

将Windows性能设置为"让Windows选择......"

  • 当使用上面的代码关闭我的Delphi应用程序时,淡入淡出几乎是瞬间的(最多可能是1/4秒,如果我眨眼,我会错过过渡).

如果我将性能选项设置为"调整以获得最佳性能"

  • 退出同一个应用程序时,淡入淡出需要12秒.
  • 使用相同的代码但注释掉AlphaBlendValue更改会消除延迟.

我在Delphi 2010和DelphiXE2上测试了这个,结果是一样的.这在Windows 7 Ultimate 64bit上进行了测试,如果这有任何区别的话.

至少可以说这种行为让我很困惑.

  • 我认为Alpha属性的形式由GPU处理,因此不会受到旨在最大化CPU性能的Windows性能设置的影响.

因此,就这一点而言,我不确定这是一个Windows 7错误,Delphi错误还是我缺乏知识.

至于修复...有没有办法判断Windows是否在垃圾图形/最大性能模式下运行,以便我可以在我的应用程序中禁用Alpha淡入淡出效果?


为清晰起见编辑:虽然我想修复淡入淡出我真正想要的是一种确定Windows性能设置的方法.

我正在寻找如何确定特定的Windows设置 - 当您进入Windows性能选项时,有3个选项卡.在第一个"视觉效果"选项卡上,有3个固定选项和第4个"自定义"选项.最小的我试图确定所选的选项是否是"调整以获得最佳性能",如果我可以更好地确定此选项卡上的设置.


感谢任何帮助.

windows delphi winapi delphi-2010

2
推荐指数
1
解决办法
686
查看次数

TreeView:如何确定节点是否处于编辑模式?

有没有办法判断树视图节点当前是否处于编辑模式?

我正在使用KeyUp事件来确定删除键是否被命中 - 我只想触发我的'你真的想删除这个'代码,如果用户没有编辑的话.

该项目使用的是Delphi 2010.

delphi treeview delphi-2010

2
推荐指数
1
解决办法
744
查看次数