草庐IT

delphi-xe4

全部标签

windows - Delphi Firemonkey Cross Platform - 传递 Windows 句柄的通用方法

我在我的第二个适用于Windows和OSX的Firemonkey应用程序中埋头苦干,慢慢地转换我的函数库以处理跨平台问题。我正在尝试创建一个通用的SelectDirectory函数,该函数将为Windows或OSX运行特定于平台的代码。我让SelectDirectory在两个单独调用的平台上工作得很好,但特定于Windows的平台需要hwndparent句柄才能运行。这是在IFDEFMSWINDOWS指令中运行的(就像OSX在其编译器指令中一样)。如何将通用句柄传递给此函数,或者如何引用Application.MainForm或可以在此函数内转换为Windows句柄的内容?我希望避免在

windows - Delphi:自定义窗口菜单:需要 Msg.CmdType 和 $FFF0 说明

我正在对使用DelphiXE6开发的Windows应用程序做一些最后的润色。目前,我对窗口系统菜单感到困惑,我指的是当您单击左侧标题栏中的图标时出现的菜单。我定义了两个过程://thisinsertsoneadditionalcommandintothemenuprocedureInsertCommand(Sender:TObject);//thisisobviouslyahandlerofmouseclicksonthatmenuprocedureOnSysCommand(varMsg:TWMSysCommand);messageWM_SYSCOMMAND;定义如下:constALW

windows - 在 Delphi 2K9 中运行时禁用和启用组件。奇怪的问题

代码如下:procedureDisableContrlOL(constcArray:arrayofstring;ReEnable:boolean=False);//canbecalledfromVKP/RAW/GenerationclicksvarAComponent:TComponent;CompListDis,CompListEna:TStringList;beginCompListDis:=TStringList.Create;CompListEna:=TStringList.Create;fori:=Low(cArray)toHigh(cArray)dobeginACompon

delphi - DeferWindowPos 是否与 VCL 配合良好?

我正在考虑增加对DeferWindowPos的使用。到目前为止,我在一些简单的情况下使用它,并没有发现任何问题。你知道任何陷阱吗?FLeft/FTop/...字段没有正确更新或类似的事情? 最佳答案 DeferWindowPos应该不是问题,因为WM_WINDOWPOSCHANGED、WM_MOVE和WM_SIZE消息在移动/调整大小完成后仍会发送。DeferWindowPos的工作方式就好像用户移动窗口或调整窗口大小一样,VCL会跟踪所有更改并正确更新FLeft、FTop、FWidth和FHeight。

windows - delphi中的多种形式

在我的Delphi项目中,我想要一个“设置”按钮,单击该按钮会打开第二个表单(我认为这是正确的术语,我基本上想要打开一个新窗口)进行设置。当用户完成更改此新表单上的设置后,我希望表单在单击按钮时关闭。第一个“主”表单也需要能够访问用户输入的设置。因此,例如,如果我的程序由一个主窗体组成,计算“A”+“B”(A和B是整数变量),设置窗体允许用户设置A和B的值,我该怎么做? 最佳答案 如果您了解Delphi的对象模型,这并不难。表单是从TObject派生出来的对象,由DFM文件支持,以便更轻松地设置布局。它上面的控件是其他对象,默认情况

windows - 在没有 WNetAddConnection2 的情况下使用 Delphi 映射网络驱动器

最近我构建了一个GUI应用程序,可将网络连接映射到Windows中的驱动器。不幸的是,它使用WNetAddConnection2()调用来完成此操作。不幸的是,WindowsAPI在映射远程WebDAV连接方面表现不佳。它在Vista中似乎工作正常,除了在尝试启用SSL时,它在XP中不起作用,除非您指定一个文件夹(您不能将它映射到根URL。例如:http://mywebdavserver.tld)。SSL在XP中也不起作用。基本上,我发现使用WNetAddConnection2()非常不可靠。也就是说,有没有什么方法可以在不使用WNetAddConnection2()的情况下使用Web

windows - 我的 Delphi 7 应用程序在 Application.Initialize 上停止并且不返回到下一行

我在Delphi7上创建了一个应用程序。我的应用程序从昨天开始运行良好。我不知道昨天发生了什么导致我的应用程序在源代码中的Application.Initialize行停止并且在我跟踪程序时不返回到下一行。当生成的文件在另一台机器上正确运行时,我无法从widowsniether运行创建的可执行文件。这是编译器停止的代码:programInfo_Kiosk;usesSysUtils,Forms,...(someotherunits);{$R*.res}beginApplication.Initialize;Application.CreateForm(Tfrm_Main,frm_Main

windows - 在 Delphi 中使用 COM 支持在 DLL 和 .EXE 之间切换

我有以下情况:我有一个delphi应用程序{$APPTYPEGUI}。(APP1)如果APP1启动,它会运行代码begin和end.,就像它应该的那样。稍后,APP1将被转换为DLL(另一个应用程序将执行此操作-APP2)。APP2添加IMAGE_FILE_DLL标志到NTFileHeader中的CharacteristicsAPP1。然后APP2尝试使用LoadLibrary加载DLL(APP1)(或加载dll的其他一些COM命令)但它返回错误:WindowsencounteredaninternalerrorwhileinitializingCOMlibraries.我已经用C项目

windows - 如何在 Rad Studio xe3 中调试第二个应用程序?

我从Debug模式运行程序,一切正常,但是当我通过CreateProcess运行该程序的第二个副本时,调试不起作用。我可以执行Run->Loadprocess,但他运行程序。但是我需要一些东西来做这个程序的第一个实例。如何通过CreateProcess在Debug模式、第二个或第三个窗口中运行?像这样:F9->调试器打开project1.exe->project1.exe也从调试运行CreateProcess('project1.exe',...)如何运行我的代码(不是我的手): 最佳答案 在调试器选项中,打开“Debugspawn

windows - 应用程序如何在 Delphi 中关闭后启动自己的服务?

我有一个应用程序,用户可以通过两种不同的方式启动它,作为普通应用程序或作为Windows服务。当服务已经在运行时(系统托盘中有它的图标)并且用户尝试启动应用程序(不仅仅是通过单击托盘图标打开,而是再次单击Start>Applications>Blahblah),它说:“应用程序已经作为服务运行,你想关闭服务并启动应用程序吗?”当用户单击"is"时,应用程序关闭服务并正常启动自身申请。发生这种情况时,我会放置一个标志,指示用户曾经停止过该服务,当他们关闭应用程序时,软件会看到该标志,并且该服务必须重新开始运行,因为它之前已关闭,无法作为普通应用程序启动.我试着把:WinExec(PCha