草庐IT

delphi-6

全部标签

android - 常量字符串参数和适用于 Android 的 Delphi XE5 编译器

希望我只是遗漏了一些明显的东西,但我似乎发现在使用DelphiXE5Android编译器时常量字符串参数被破坏了。测试代码:1)创建一个新的空白移动应用程序项目。2)添加TButton到表格,并创建一个OnClick它的处理程序。3)像这样填写处理程序:procedureTForm1.Button1Click(Sender:TObject);beginGoToDirectory(PathDelim+'alpha'+PathDelim+'beta');GoToDirectory(FParentDir);end;4)在表单类声明中,添加两个字段和一个方法,如下所示:FCurrentPath

android - 如何在 Delphi-XE5 Firemonkey 应用程序中关闭 android 应用程序?

我有这段代码procedureTFormMain.FormCloseQuery(Sender:TObject;varCanClose:Boolean);varmsg:String;beginmsg:='Doyoureallywanttoexit?';ifMessageDlg(msg,TMsgDlgType.mtConfirmation,[TMsgDlgBtn.mbYes,TMsgDlgBtn.mbNo],0)=mrNothenCanClose:=FalseelseCanClose:=True;{FIXME:don'twanttoworkonAndroid}end;它在Windows上完

android - Delphi 10.3 Rio减少了支持的Android设备数量?

我的Delphi10.2.3应用程序已提交到GooglePlay,修复来自以下答案:DelphiAndroidappAPIlevel26?GooglePlay报告说这个版本支持超过400台设备。同一个项目是用10.3Rio构建的,但在提交时,GooglePlay警告说这个新构建仅支持223台设备。是什么导致支持的设备减少? 最佳答案 DelphiRIO10.3将AndroidminSdkVersion更改为19,排除了低于Android4.4/KitKat的设备,这减少了目标设备的数量。

android - 如何使用 Delphi XE5 在 Android 上访问 OpenGL 渲染上下文?

在使用DelphiXE5开发应用程序时,如何在Android设备上创建OpenGL渲染上下文?基本上我不知道从哪里开始。目前还没有OpenGL示例。我希望存在的东西:某种事件(Panel.OnRender)可以提供我可以在其中调用OpenGL调用的现有上下文。可以放置在窗体设计器中的通用TOpenGLSurface控件一种在运行时在主窗体上创建上下文的方法。根据我目前的研究,TWindowManager.Render可以访问OpenGL调用并使用它们来呈现弹出窗口。编辑:将计时器添加到表单并调用此过程会使屏幕充满绿色,这意味着GL上下文已经存在:procedureTForm1.Time

c++ - Delphi PChar 到 C++ const char*

我正在尝试使用native程序中的C++dll。我正在按照解释的虚拟方法场景here假设我的C++函数签名的形式是intSetup(constchar*szIp,constchar*szPort);而对应的delphi签名为functionSetup(ip,port:PChar):Integer:virtual;cdecl;abstract;我可以从delphi程序的某个地方调用pObj.Setup('192.168.1.100','97777');控件进入dll,但是szIp和szPort形参只接收我从delphi程序传过来的ip和port的第一个字符。我知道它与在delphi中正确

c++ - 在 Delphi 中明确表达所有权

我主要是一名C++程序员,我已经习惯了类模板,如std::unique_ptr,std::shared_ptr等来表达我的对象的所有权。Delphi的标准库中是否有类似的东西?在编写代码时,是否有任何我应该遵循的表达对象所有权的最佳实践?编辑:自从C++11成为标准以来,有两个轻量级辅助类,std::shared_ptr和std::unique_ptr.如果我创建一个std::shared_ptr类型的变量,它表示指向具有共享所有权的int的指针:在引擎盖下是引用计数,当引用计数达到零时,指针将自动释放。这种类型表达了一种“共享所有权”,其中许多对象在使用完资源后共同承担销毁资源的责任

c++ - Delphi:使用调试器调用 C dll 函数需要 15 秒,没有调试器需要 0.16 秒。为什么?

我有以下设置:用DelphiXE5编写并内置Debug64位的Delphi命令行应用程序。用MicrosoftVisualStudio2013编写并内置64位版本的Cdll。Delphi命令行应用程序调用Cdll中的函数。意外情况:在DelphiXE5IDE中调试Delphi命令行应用程序时,Cdll函数调用需要15秒。当直接启动相同的Delphi命令行应用程序(没有IDE,没有调试器)时,Cdll函数调用需要0.16秒。Delphi命令行应用程序源代码:programDelphiCpplibraryCall;{$APPTYPECONSOLE}{$R*.res}usesSystem.S

c++ - 可以将带有类的 C++ 头文件转换为 Delphi 单元吗?

我有一个C++*.h文件,其中包含三个类。头文件用于访问DLL。我几乎没有C++知识。但是,我似乎从某个地方记得您不能将*.h文件转换为其中包含类的Delphi单元。这是真的吗?如果不是这样,并且头文件中的类不是问题,那么将这些类转换为Delphi的一般方法是什么? 最佳答案 C++类,就像Delphi类一样,不是为二进制互操作而设计的。Delphi类只能导出供其他Delphi代码使用,然后只能在一个包中,并且只有在使用运行时包时,并且只有当所有模块都使用相同版本的Delphi时。同样,C++类只能通过使用编译DLL的同一工具链编译

c++ - 如何像 Delphi 应用程序一样创建独立的(没有 DLL 文件依赖项)C++Builder 控制台应用程序?

当我创建一个Delphi控制台应用程序时,我可以部署生成的EXE文件,而不必担心外部DLL文件。但是如果我创建非常简单的C++Builder(2007版)控制台应用程序(无VCL)EXE文件需要CC3280MT.dll文件才能运行。如何避免我的C++Builder控制台应用程序需要CC3280MT.dll文件?即使是这个简单的代码也会导致这种依赖:#include#pragmahdrstop#pragmaargsusedintmain(intargc,char*argv[]){cout 最佳答案 在项目选项中,取消选中链接器选项“动

c++ - 将 Delphi 代码转换为 C++ 的最佳方法?

我有一个用Delphi编写的应用程序,它在Delphi2007中编译。我认为它最初是用Delphi7编写的。无论如何,我需要将所有核心非GUI代码转换为C++,因为我想发布该软件的Mac版本。最好的方法是什么?我可以采取任何捷径来加快这个过程吗?编辑:代码编译为native代码,而不是.NET。 最佳答案 简单的回答:如果不完全重写,您根本无法将重要的Delphi代码移植到C++。C++的对象模型与Delphi的非常不同。它没有像TObject这样所有其他对象都从中派生的基类,并且它缺乏对Delphi代码通常认为理所当然的许多RTT