delphi-7相关内容

TMonitor中是否有针对AV的运行时补丁?

以下是Delphi 7和2007(可能还有其他版本)中的已知错误 Does TMonitor.GetBoundsRect have an access violation bug in Delphi 2007 triggered by VNC? 有一个关于如何通过重新编译forms.pas来修复它的答案,但我不想重新编译RTL单元。有没有人为它创建了运行时补丁,例如使用Andy Hau ..
发布时间:2022-08-16 11:04:35 其他开发

使用UPnP转发端口-关闭端口

我正在使用Port Forwarding by Using "HNetCfg.NATUPnP" Ole Object Failed中的代码进行端口转发,工作正常,只是在应用程序终止时无法关闭端口。 AddUPnPEntry(1234, 'Hello3', '192.168.1.34'); 尽管我重启了我的电脑,但1234端口仍然打开,我在canyouseame.org上测试了它。 那么, ..
发布时间:2022-07-20 15:03:12 其他开发

再次用Delphi实现OpenOffice计算

我用的是搜索引擎,不只是这里,我已经厌倦了;我只想要一个简单的问题的简单答案(或链接): 如何打开计算表并将123从Delphi(7)代码写入单元格A1?(或者任何关于Calc的问候世界?) 推荐答案 好的,经过研究和使用上面的信息,我非常感谢,这是一个简单的答案: 使用部件 Uses ComObj, OOoMessages, OOoTools, OOoConstants ..
发布时间:2022-07-20 14:53:56 其他开发

Delphi中的数组追加

我正尝试在Delphi 7中实现数组追加,因为标准库没有它。这就是我到目前为止所拥有的,但当我尝试获取数组的长度时,它会报告不兼容的类型。 procedure ArrayAppend(var GenericArray; const Element); var len: Integer; begin len := Length(GenericArray); SetLength(Ge ..
发布时间:2022-05-18 09:01:01 其他开发

如何跨入RTL/VCL?

使用Delphi 7 IDE进行调试时,如何单步执行程序文件/borland/delphi7/source文件夹中的代码? 听起来像一个愚蠢的问题,但好奇的人想要调试。(并不是说我认为源代码有什么问题,我只是想知道为什么第9000次我不能将TJpegImage分配给TjpegImage)。 推荐答案 确保在“项目选项”中启用了“使用调试DCU”选项,并且vcl源文件夹位于调试器的 ..
发布时间:2022-05-17 23:54:29 其他开发

在Delphi 7中使用TScreen

我的Delphi-7应用程序显示: Screen.DesktopWidth Screen.DesktopHeight Screen.Monitors[0].Width Screen.Monitors[0].Height 如果选择了第二个监视器,还将: Screen.Monitors[1].Width Screen.Monitors[1].Height 在 ..
发布时间:2022-05-17 23:46:20 其他开发

如何在Delphi 7中使用MSXML6.0创建TXML文档?

Delphi 7发布时,MSXML 6.0还不存在。是否可以将Delphi的TXML文档配置为使用MSXML 6.0而不是旧版本? 推荐答案 将以下代码添加到单位名称uMSXMLVersion或您选择的名称,并将其添加到您的项目USX中 {----------------------------------------------------------------------- ..
发布时间:2022-05-17 23:36:30 其他开发

Delphi执行应用程序

我正在尝试用Delphi创建一个DLL,我设置了一些文件属性,但我想从工作目录运行一个.exe文件。 我尝试使用以下代码运行exe文件 ShellExecute(Handle, 'open', 'start.exe', nil, nil, SW_SHOWNORMAL); 但我收到错误: 未声明的标识符“Handle”。 未声明的标识符‘SW_SHOWNORMAL’ 运行exe ..
发布时间:2022-05-17 23:27:07 其他开发

一套弦??!!

您熟悉此区块: Var mySet: Set Of Char; C: Char; begin mySet := ['a', 'b', 'c']; If C In mySet Then ShowMessage('Exists'); end; 有没有办法声明Set Of STRING?或者,有没有类似的代码可供我使用?此块的重要部分是If C In mySet Then Sh ..
发布时间:2022-05-17 23:18:31 其他开发

Delphi 7 tguid 比较

在 Delphi 7 中,除了将它们转换为字符串(guidtostring 函数)并在计算表达式之后,还有其他方法可以比较 2 个 TGUID 元素吗? 解决方案 你可以使用IsEqualGUID API 在 SysUtils 中声明. ..
发布时间:2022-01-25 09:35:31 其他开发

将 TObject 保存到文件

如何将当前状态下的对象保存到文件中?这样就可以立即读取并恢复它的所有变量. 解决方案 如前所述,最简单的方法是使用 Stream 及其 WriteComponent 和 ReadComponent 方法. 但请注意: - 它适用于 TComponent 的后代,而不是普通的 TObject; - 仅用于已发布的属性(保存在 dfm 中的),而不是公共的,也不是(更不用说)私人的; ..
发布时间:2022-01-24 18:55:23 其他开发

使用 poFetchDetailsOnDemand 刷新嵌套数据集

有没有办法只刷新详细数据集而不重新加载所有主数据集? 这是我迄今为止尝试过的: DM.ClientDataSet2.Refresh;DM.ClientDataSet2.RefreshRecord; 我也试过了: DM.ClientDataSet1.Refresh; 但是上面的方法刷新的是整个Master数据集,而不仅仅是当前记录. 现在,下面的代码似乎可以做任何事情: DM. ..
发布时间:2022-01-21 13:16:33 其他开发

防止在保存时删除具有空主体的方法

一直按Ctrl+S 是我的一个很矛盾的习惯.不利的一面是,delphi 在保存时会删除空函数/过程. 有没有办法防止 IDE 在保存时删除具有空主体的函数/过程? 解决方案 根据 OP 请求从评论转换.我的评论太小了,无法回答,所以我将添加一些可能对 OP 来说已经很明显的细节. 这仅发生在事件处理程序中¹.立即写下它们或用 todo² 评论他们 ¹也就是说,事件处理程序是 ..
发布时间:2022-01-20 21:53:14 其他开发

为什么 InvalidateRow/InvalidateColum 不起作用?

InvalidateRow 和 InvalidateColum 不适用于 TStringGrid.这些方法不会使整个 Row/Col 无效. InvalidateGrid 始终有效(因此在找到错误原因之前,这可能是一个肮脏的解决方法). 在某些情况下(它似乎是随机的) InvalidateRow 和 InvalidateColum 似乎也可以工作.更新:我发现了哪些情况会触发bug:网格必 ..
发布时间:2022-01-18 10:25:28 其他开发

Coinitialize(nil) 和 CoInitializeEx(0, COINIT_MULTITHREADED) 的区别

在一个线程中,如果我使用 有区别吗 Coinitialize(nil) 而不是 CoInitializeEx(0, COINIT_MULTITHREADED); 我使用的是 Delphi 7,但我认为这个问题对于其他编程语言仍然存在感谢您的帮助. 解决方案 前者初始化 COM 的方式是将调用线程放入自己的单线程单元 (STA).后者以将调用线程放入共享多线程单元 (MTA) 的方 ..
发布时间:2022-01-14 12:31:03 其他开发

拦截 TAB 键并抑制它

我需要截取 TEdits 上的 TAB 键盘敲击并以编程方式抑制它们.在某些情况下,我不希望焦点切换到下一个控件. 我尝试使用 KeyPreview=true 在 TEdit 级别和 TForm 上处理 KeyPress、KeyDown.我偷看了以下建议: 截取 RichEdit 中的 TAB 键 如何让TAB键关闭TComboBox而不丢失当前位置? 但它没有用.事件被触发, ..
发布时间:2022-01-13 22:28:33 其他开发