小编Joh*_*mas的帖子

跨平台开发 - Delphi 2011:如何建立一个跨Windows平台的图书馆?

或许您已经知道,很可能下一版本的Delphi将是跨平台的.此外,这里有一些民意调查.

虽然编写交叉编译器并不是我们现在非常感兴趣的事情,但移植一个与多个平台绑定Windows的库当然可以.

您可以考虑,例如在VCL(Delphi的标准库).虽然它仅适用于Windows,但它具有价值,当然,还有很多依赖它的代码库.

问题是: 哪个是使应用程序/库跨平台感知的最佳方法,确保顺利转换/升级路径(当然尽可能多)?

我再次强调它,我们不感兴趣哪个是仅进行跨平台开发的最佳方式(对此主题有疑问).我们还对另一个要求感兴趣:旧的代码库/安装管理.

PS:欢迎来自其他语言(例如C/C++)的类似情况的经验和/或方法被视为标准实践.

提前致谢.

delphi cross-platform

10
推荐指数
1
解决办法
9783
查看次数

使用SSL与Delphi但仍然只有一个exe

我们使用Indy,我们的应用程序需要SSL电子邮件支持,但是我们需要将我们的应用程序放在一个.Exe中.

我们知道默认的Indy处理程序需要在路径中包含dll.从EXE的一个资源中提取Dll将是最后的选择.

有更好的想法吗?

delphi dll exe indy

8
推荐指数
2
解决办法
3480
查看次数

如何获取包含我的应用程序创建的所有线程的列表

我想从我的应用程序中获取包含所有线程(主要的GUI线程除外)的列表,以便对它们执行一些操作.(设置优先级,杀死,暂停等)如何做到这一点?

windows delphi multithreading process

8
推荐指数
2
解决办法
6468
查看次数

如何使用Delphi弹出给定文件的Windows上下文菜单?

我想写下面的过程/函数:

procedure ShowSysPopup(aFile: string; x, y: integer);
Run Code Online (Sandbox Code Playgroud)

这将构建并显示(在坐标x和y处)右键单击的shell菜单,在Windows资源管理器中可以看到给定文件.我对'显示'部分不是那么感兴趣,而是更多关于如何构建这样的菜单.

delphi registry winapi

7
推荐指数
1
解决办法
3524
查看次数

在Delphi XE中有效地更改Generics中的Record成员

如果所述记录在通用结构中,我们不能直接为记录成员分配值.

例如,拥有:

type

TMyRec = record
  Width: integer;
  Height: integer;
end;

var
  myList: TList<TMyRec>;


...
  myList[888].Width:=1000; //ERROR here: Left side cannot be assigned.
...
Run Code Online (Sandbox Code Playgroud)

直到现在,我使用了一个临时变量来克服这个问题:

var
  ...
  temp: TMyRec;
  ...

begin
  ...
  temp:=myList[999];
  temp.Width:=1000;
  myList[999]:=temp;
  ...
end;
Run Code Online (Sandbox Code Playgroud)

丑陋,缓慢,但有效.但现在我想添加TMyRec一个动态数组:

type
  TMyRec = record
    Width: integer;
    Height: integer;
    Points: array or TPoint;
  end;
Run Code Online (Sandbox Code Playgroud)

...或任何其他可能变大的数据结构,因此在临时变量中来回复制不是一个可行的选择.

问题是:如果此记录在通用结构中而不需要在临时var中复制它,如何更改记录的成员?

TIA的反馈意见

delphi generics records

4
推荐指数
1
解决办法
811
查看次数

如何编写从SQL数据库返回值的Excel函数?

我想编写以下函数,该函数应该在Excel工作表中使用:

=GetRecField("Foo Record Key", "FooField1")
Run Code Online (Sandbox Code Playgroud)

...将通过ODBC内部连接到SQL数据库,在那里执行

SELECT FooField1 FROM MyTable WHERE KEY_FIELD='Foo Record Key';
Run Code Online (Sandbox Code Playgroud)

并将返回结果值作为函数GetRecField的结果.上述SQL被授予仅返回一条记录(IOW KEY_FIELD具有唯一约束).

当然,上述功能可以在工作表中多次调用,所以请尽量避免盲目 QueryTables.Add

TIA.

sql excel odbc

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

如何使文件完全不可变(不可删除和只读)?

我需要使文件真正只读 - 保持原样.没有删除,没有任何东西.

(设置'ReadOnly'属性不是一个选项)

我现在看到一些方法:

  1. 使用程序保持文件打开.缺点:可以杀死进程然后文件关闭.

  2. 使用程序设置安全属性.缺点:可以删除文件.此外,可以更改属性.

有任何想法吗?此外,将会感谢示例代码(最好在Delphi中).

更新:感谢目前为止的所有答案.他们真的很棒.我意识到我不是很清楚.我们要解决的问题是:

有一些类似.txt的文件包含敏感信息.我们的客户希望确保这些文件不会在其计算机上"幕后"更改.我们应该提一下,他们的PC很容易被恶意软件感染,专门用来做这件事.我们的客户应该能够使用记事本,写字板等打开这些文件,但他们接受这些文件是只读的.如果我们的任何客户采取决定性的行动,如进入"安全模式"等,并从他们的责任篡改文件.我们应该防范任何恶意软件,包括零日攻击.(因此,经典的防病毒解决方案并不合适).

你能给出一些想法吗?

PS:我最诚挚的道歉,从一开始就不那么清楚.

windows delphi security winapi

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

如何编写Delphi Galileo IDE Expert?

HI,

我想为D2007-D2009(又名Galileo IDE)编写一个小型Delphi IDE Expert,以便在其上显示一个带有TMemo实例的窗口,其中包含上述备忘录中表单设计器的所有组件名称和类.所选组件将标有"*".专家应出现在菜单/工具栏上并指定快捷方式.

我该怎么办?

Ps:实际上真正的代码比这更复杂,但我希望有一个通用的框架来开始.

TIA

ide delphi galileo ota

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

上下文菜单中的资源管理器集成,但使用已在运行的实例

我想检查是否存在,如果它不存在,请在资源管理器的右键单击(上下文)菜单中添加一些操作.

除了上述要求(人们可以在网上轻松找到解决方案)之外,我想再添加一个:

假设我注册了以下命令:

  • "Command#1" - 触发'C:\ MyProg.exe/cmd1'
  • "Command#2" - 触发'C:\ MyProg.exe/cmd2'

......(aso.)

如何检查是否存在已运行实例MYPROG.EXE并将其传递适当的命令/命令行参数一起与该用户点击文件名?

(IOW,我想使用已经运行的程序实例来完成我的任务,而不是打开一个新任务)

Delphi代码片段将不胜感激.

TIA

windows delphi explorer winapi

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

如何部署商用便携式应用程序?

我们计划出售Windows便携式应用程序."便携式"是指它可以在没有安装的情况下从任何Windows计算机运行.例如,从USB记忆棒等.然而,(理论上)它可以在任何地方工作的应用程序,针对LAN环境.

你看到了什么解决方案,同时保持这种优势(或多或少)仍能从中赚钱?

PS:该应用程序是/将用Delphi编写的.

windows delphi deployment winapi licensing

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

如何使用Delphi XE5在Android中禁用屏幕截图?

我知道FLAG_SECURE是一种禁用Android屏幕截图功能的方法。如何在 FireMonkey / Delphi XE 5 中使用它?

delphi android delphi-xe5

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

在Delphi中自定义JPEG图像处理

我们使用Delphi XE6构建一个跨平台的FireMonkey应用程序,我们想稍微调整一下JPG编码器.实际上我们想要子类化,更改JPEG签名,在文件中添加一些参数并更改文件扩展名.在实际的JPEG引擎中什么都不会改变.

此外,我们希望支持LoadThumbnailFromFile哪些仍将使用实际的JPG代码.

但是,我们很难找到JPG编码器在源代码中声明的位置以及如何子类化/派生它.

delphi graphics firemonkey

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