或许您已经知道,很可能下一版本的Delphi将是跨平台的.此外,这里有一些民意调查.
虽然编写交叉编译器并不是我们现在非常感兴趣的事情,但移植一个与多个平台绑定Windows的库当然可以.
您可以考虑,例如在VCL(Delphi的标准库).虽然它仅适用于Windows,但它具有价值,当然,还有很多依赖它的代码库.
问题是: 哪个是使应用程序/库跨平台感知的最佳方法,确保顺利转换/升级路径(当然尽可能多)?
我再次强调它,我们不感兴趣哪个是仅进行跨平台开发的最佳方式(对此主题有疑问).我们还对另一个要求感兴趣:旧的代码库/安装管理.
PS:欢迎来自其他语言(例如C/C++)的类似情况的经验和/或方法被视为标准实践.
提前致谢.
我们使用Indy,我们的应用程序需要SSL电子邮件支持,但是我们需要将我们的应用程序放在一个.Exe中.
我们知道默认的Indy处理程序需要在路径中包含dll.从EXE的一个资源中提取Dll将是最后的选择.
有更好的想法吗?
我想从我的应用程序中获取包含所有线程(主要的GUI线程除外)的列表,以便对它们执行一些操作.(设置优先级,杀死,暂停等)如何做到这一点?
我想写下面的过程/函数:
procedure ShowSysPopup(aFile: string; x, y: integer);
Run Code Online (Sandbox Code Playgroud)
这将构建并显示(在坐标x和y处)右键单击的shell菜单,在Windows资源管理器中可以看到给定文件.我对'显示'部分不是那么感兴趣,而是更多关于如何构建这样的菜单.
如果所述记录在通用结构中,我们不能直接为记录成员分配值.
例如,拥有:
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的反馈意见
我想编写以下函数,该函数应该在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.
我需要使文件真正只读 - 保持原样.没有删除,没有任何东西.
(设置'ReadOnly'属性不是一个选项)
我现在看到一些方法:
使用程序保持文件打开.缺点:可以杀死进程然后文件关闭.
使用程序设置安全属性.缺点:可以删除文件.此外,可以更改属性.
有任何想法吗?此外,将会感谢示例代码(最好在Delphi中).
更新:感谢目前为止的所有答案.他们真的很棒.我意识到我不是很清楚.我们要解决的问题是:
有一些类似.txt的文件包含敏感信息.我们的客户希望确保这些文件不会在其计算机上"幕后"更改.我们应该提一下,他们的PC很容易被恶意软件感染,专门用来做这件事.我们的客户应该能够使用记事本,写字板等打开这些文件,但他们接受这些文件是只读的.如果我们的任何客户采取决定性的行动,如进入"安全模式"等,并从他们的责任篡改文件.我们应该防范任何恶意软件,包括零日攻击.(因此,经典的防病毒解决方案并不合适).
你能给出一些想法吗?
PS:我最诚挚的道歉,从一开始就不那么清楚.
HI,
我想为D2007-D2009(又名Galileo IDE)编写一个小型Delphi IDE Expert,以便在其上显示一个带有TMemo实例的窗口,其中包含上述备忘录中表单设计器的所有组件名称和类.所选组件将标有"*".专家应出现在菜单/工具栏上并指定快捷方式.
我该怎么办?
Ps:实际上真正的代码比这更复杂,但我希望有一个通用的框架来开始.
TIA
我想检查是否存在,如果它不存在,请在资源管理器的右键单击(上下文)菜单中添加一些操作.
除了上述要求(人们可以在网上轻松找到解决方案)之外,我想再添加一个:
假设我注册了以下命令:
......(aso.)
如何检查是否存在已运行实例MYPROG.EXE并将其传递适当的命令/命令行参数一起与该用户点击文件名?
(IOW,我想使用已经运行的程序实例来完成我的任务,而不是打开一个新任务)
Delphi代码片段将不胜感激.
TIA
我们计划出售Windows便携式应用程序."便携式"是指它可以在没有安装的情况下从任何Windows计算机运行.例如,从USB记忆棒等.然而,(理论上)它可以在任何地方工作的应用程序,针对LAN环境.
你看到了什么解决方案,同时保持这种优势(或多或少)仍能从中赚钱?
PS:该应用程序是/将用Delphi编写的.
我知道FLAG_SECURE是一种禁用Android屏幕截图功能的方法。如何在 FireMonkey / Delphi XE 5 中使用它?
我们使用Delphi XE6构建一个跨平台的FireMonkey应用程序,我们想稍微调整一下JPG编码器.实际上我们想要子类化,更改JPEG签名,在文件中添加一些参数并更改文件扩展名.在实际的JPEG引擎中什么都不会改变.
此外,我们希望支持LoadThumbnailFromFile哪些仍将使用实际的JPG代码.
但是,我们很难找到JPG编码器在源代码中声明的位置以及如何子类化/派生它.