我对从DLL内部创建的表单有一个小问题。基本上,当显示来自dll的表单(Form1)(我认为它必须保持在顶部)并且您打开另一个与主应用程序分开的表单(Form2)(即不在内部)时,会发生什么dll)。如果将光标放在Form2上的控件上以显示提示,则Form2将立即移到Form1后面。只有当MainFormOnTaskBar为true时才会发生这种情况。目前我们正在将主应用程序的Application.Handle传递给DLL,并将其分配给DLL的Application.Handle。我已设法通过将Application.MainForm.Handle传递给DLL以分配给DLL中的App
我有一个用Delphi7编写的监控应用程序,它在辅助监视器的一部分上运行。如果窗口最小化(例如,如果我在主显示器上使用“Windows-D”(查看桌面)命令),我想让它恢复正常可见性我每隔几秒就试过这个由计时器激活的代码:if(Mainform.WindowStatewsNormal)thenMainform.WindowState:=wsNormal;{restoremainwindowifminimized}这是行不通的。为了调试它,我更改了代码以在程序运行时将Mainform.WindowState的值记录到一个文件中。即使主窗体的窗口最小化,该值仍然是wsNormal。为什么?
我有一个用Delphi6编写并在WindowsXP上编译的应用程序。通常我在控件和表单边缘之间留出8px的空隙。当此应用程序在Vista或Win7上运行时,此差距较小或根本不存在。我认为这可能是因为这些版本的Windows具有较粗的窗体边框。现在我正在将应用程序移动到Delphi2007。在表单设计器中,表单已经失去了底部和右侧的空白。我该如何处理?我有数百种形式,不想全部更改。此外,我们的大多数用户都在WinXP上运行该应用程序,因此我不想让它在XP中看起来很糟糕。 最佳答案 简短版本:将所有表单更改为AutoScroll=Fal
我正在改进我多年前构建的一个小型闹钟/提醒应用程序,我想每小时发出一次哔哔声,但与其发出哔哔声,不如告诉它时间会好得多。在DELPHID2007或更高版本中有什么简单的方法可以做到这一点吗? 最佳答案 查看BrianLong的教程SpeechSynthesis&SpeechRecognitionUsingSAPI5.1我使用本教程编写了一个文本转语音软件。当我按下CTRL+F10时,它会读取剪贴板内容 关于windows-Delphi中的文字转语音,我们在StackOverflow上找到
我想在Windows7防火墙中打开一个端口以通过Delphi进行端口转发,但正如在其他线程中所说,Windows7在防火墙中有多个配置文件(公共(public)、私有(private)),下一个代码只向其中一个添加异常(exception)。代码:procedureaddPortToFirewall(EntryName:string;PortNumber:Cardinal);ConstNET_FW_PROFILE_DOMAIN=0;NET_FW_PROFILE_STANDARD=1;NET_FW_IP_VERSION_ANY=2;NET_FW_IP_PROTOCOL_UDP=17;NE
如何自动删除我的Delphi程序?我试过这段代码:procedureDeleteSelf;varmodule:HMODULE;buf:array[0..MAX_PATH-1]ofchar;p:ULONG;hKrnl32:HMODULE;pExitProcess,pDeleteFile,pFreeLibrary:pointer;beginmodule:=GetModuleHandle(nil);GetModuleFileName(module,buf,sizeof(buf));CloseHandle(THandle(4));p:=ULONG(module)+1;hKrnl32:=GetM
因此,Delphi现在支持Windows、MacOS、Android和iOS的编程。有没有办法用Delphi(XE5)为WindowsMobile写程序? 最佳答案 你可以看看Oxygene编译器来自RemObjects,他们支持许多平台,包括WinRT、iOS和Android,这是他们网站上的引述:Oxygene6isoutnow,supporting3majortargetplatforms:.NET,WinRTandMono,JavaandAndroidandNEW!nativeCocoadevelopmentforMacan
我有一个Delphi程序,我正在研究这个程序如何在日志文件中打印它自己的“虚拟大小”,这样我就可以看到它何时使用了过多的内存。如何使用Delphi代码确定“虚拟大小”?“虚拟大小”是指ProcessExplorer显示的值.普通任务管理器无法显示此值。它不直接是程序的内存使用,而是地址空间的使用。在Win32上,一个程序不能使用超过2GB的地址空间。PS:我使用的是Delphi6,但其他版本的代码/信息也应该没问题。 最佳答案 多亏了这个post它给出了有关如何使用C/C++获取虚拟大小的提示,我能够编写以下Delphi函数:Typ
我遇到一个问题,当我执行在其list中请求管理员权限的命令行帮助程序时,Windows8用户帐户控制(UAC)弹出窗口被最小化。UAC弹出窗口在Windows任务栏中以黄色闪烁,导致用户体验困惑:单击任务栏图标后,UAC警报显示:在Windows7中,UAC警报不会最小化,而是显示在前台。关于如何在Windows8中修复此问题有任何想法吗?作为引用,我的主应用程序在用户权限下运行,并使用ShellExecuteEx执行帮助程序。我正在将ShellExecuteEx的TShellExecuteInfo.nShow设置为SW_SHOW。 最佳答案
我注意到Delphi工具栏有一个相当烦人的奇怪之处。我有一个包含逻辑图标组的TToolbar。为了使分组脱颖而出,我想使用样式为tbsDivider的分隔按钮。当我这样做时,它看起来像这样:请注意每个图标之间的双垂直线。右边的一个位于分隔工具按钮的中间。左边的那个位于分隔工具按钮的左边缘。所以,我可以切换到tbsSeparator来删除中间线:但我并不热衷于此,因为我希望分隔线位于中间。我查看了我真实应用程序的一个古老版本,发现它有居中分隔符。禁用Windows主题似乎是可能的。下面是tbsDivider和删除的应用程序list的样子:这就是我正在寻找的布局。当主题处于事件状态时,这是