delphi相关内容
假设您有一个执行相同任务的菜单项和一个按钮.为什么将任务代码放入一个控件的操作事件中然后从另一个控件调用该事件是不好的做法?Delphi 和 vb6 一样允许这样做,但 realbasic 不允许这样做,并说您应该将代码放入一个方法中,然后由菜单和按钮调用 解决方案 这是你的程序如何组织的问题.在您描述的场景中,菜单项的行为将根据按钮的: procedure TJbForm.MenuIt
..
我想在一个文件中复制多个文件,但是使用多线程,假设文件A是不同线程复制数据的文件,在这种情况下,每个线程都意味着复制文件A中的一个文件,使用以下过程: procedure ConcatenateFiles(const InFileNames: array of string;常量 OutFileName:字符串);变量i:整数;InStream,OutStream:TFileStream;开始O
..
我在 .bpl 中有一个单元,我需要一个字符串列表用于我编写的新函数.我希望字符串列表在应用程序的整个生命周期内保持不变,以便每次调用都可以建立在先前调用找到的内容之上. 所以它在单元内全局声明,我在初始化部分对其进行初始化,如下所示: 变量产品查找:TStrings;...函数 foo : 布尔值;开始结果 := (ProductLookup.IndexOfName('bar') >=0
..
我只是想知道,为什么大多数 Delphi 示例使用 FillChar() 来初始化记录. 类型TFoo = 记录i:整数;s:字符串;//记录不安全,最好使用 PChar结尾;常量EmptyFoo: TFoo = (i: 0; s: '');程序测试;变量富:TFoo;s2:字符串;开始Foo := EmptyFoo;//初始化一条记录//危险代码开始FillChar(Foo, SizeOf(F
..
在审查旧程序代码的过程中,出现了以下问题:方法中的所有局部变量都在开始后立即初始化.通常不初始化局部变量.但是我们有一个过程,其中所有变量都初始化为 0.有人知道这是怎么发生的吗? 例子: 类型TPrices = 整数数组[0..10, 0..5];程序 DoSomething();变量mPrices:TPrices;mValue:整数;开始如果 (mPrices[0,0] = 0) 那么
..
我是 Delphi 的新手,我一直在运行一些测试来查看默认情况下初始化的对象变量和堆栈变量: TInstanceVariables = 类fBoolean:布尔值;//总是以 false 开始fInteger:整数;//总是从零开始fObject:TObject;//总是以 nil 开始结尾; 这是我习惯于其他语言的行为,但我想知道在 Delphi 中依赖它是否安全?例如,我想知道它是否可能取
..
我想在 Delphi 应用程序中显示 yahoo 天气小部件(或任何类似的基于 flash 或 java 的小部件).我坦率地承认我不太明白要完成这项工作需要什么. 任何关于如何实现这一点的建议将不胜感激. 我使用的是 Delphi 7.所有的小部件都只是 HTML 代码,当我剪切 &例如,将它们粘贴到我的 Blogger 页面,显示出来并正常工作.我不确定如何获取相同的 html 代
..
我需要一种在 Delphi 桌面应用程序中标记照片的方法,就像 Facebook 那样. 这包括一些方法可以轻松地在人物上添加标签,然后将鼠标悬停在照片中的人物上以显示标签. 给出的答案中的两个建议:“Delphi Components for Face Identification和标记"不能解决这个问题. 但我不知道从哪里开始,也无法在网上找到有关如何执行此操作的想法.脸书是
..
亲爱的 Delphi 程序员, 我正在寻求如何编写一次性计时器的帮助(没有 GUI,所以 VCL 计时器没有问题)... 让我再解释一下. 在我的代码中(用 VCL 计时器解释,但在这个特定项目中我没有表格): 调用一个procedure,通过串口发送一个字符 启用具有 X 数量的 Interval 的计时器 在OnTimer事件中: 我有一个代码,它发送一
..
多年来,我一直是 Turbopower Async Pro 的粉丝,现在开始使用 SourceForge,它运行良好.但是,它很复杂,除了端口组件之外,我从未真正使用过它的功能.我正在为 D2009 等更新我的代码,并且很想转向更简单的东西,因为我有自己的包装器.那里有很多端口组件,但这里有什么建议吗?谢谢. 解决方案 Lars Dybdahl 最近在博客中介绍了重新焕发活力的开源 TCo
..
目标:我希望能够在 Delphi 中列出系统上可用的 COM 端口. 家庭作业:我已阅读 this SO thread on enumifying the LPT使用注册表的系统端口.我还发现 COM 端口列在 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM 的注册表中,但在 同一个线程,这在不同的机器和不同版本的 Windows 上可能不可
..
我正在Windows 7 下的Delphi 2010 XE RAD Studio 上开发Delphi 应用程序.我的应用程序不停地在串口上说话.我正在为 Delphi 2010 使用 AsyncPro.串行通信和我开发的计算机上的所有其他东西都可以正常工作,没有任何问题.但是,当我的应用程序的发布版本在另一个 Windows 7 系统上运行时,串行通信完全失败.我们探查了串行通信本身以寻找答案,并
..
我正在尝试枚举 COM 端口的“友好名称".端口可能会随着 USB 串行设备在运行时的连接和断开而动态变化. 基于this question中描述的可能方法,我正在尝试使用 SetupDiGetClassDevs 方法. 我找到了 这个示例代码,但它是为旧版本的 setupapi 单元(到 homepages.borland.com 的原始链接当然不起作用). 我尝试使用当前 J
..
我有一个用 Delphi 2006 编写的应用程序,它在 Windows XP 中运行良好.我使用 Inno Setup 打包应用程序,使用 Program Files 作为默认文件夹.一些用户迁移到 Windows Vista 和 Windows 7.这里的问题是应用程序自己在其安装文件夹中创建了一些文件.这在 XP 中有效,但在 Windows Vista 中,用户在创建文件时遇到问题(它们不
..
尝试在 Windows 7 中以高 DPI 模式让我的 Delphi 2010 应用程序更加用户友好我一直在尝试几种方法来检索 PixelsPerInch 并与 96 进行比较.唉,无论我尝试什么,我总是得到 96.我的问题是: 获得自定义 DPI 模式的最佳做法是什么? 不管我的分数是多少,我得到一个恒定的 96 是否意味着我错过了什么? 这是我尝试过的 dpiX := Form
..
将win32应用程序(实际上是一个小弹出窗口)转换为win7小工具的过程是什么?我需要将我的 exe 转换为 activex 组件,我仍然可以使用 TForm 吗? 如果同时支持 Win7 + Vista 那就太好了. 解决方案 Windows Vista/7 小工具本质上是 mini-HTML 应用程序.用户界面由包含常规 HTML、CSS、图像和可能的 ActiveX 控件的页面
..
我们有一个用 Delphi 编写的 Windows 桌面应用程序,它在 Windows 7 上运行良好,只是主窗体的图标在 Windows 的新任务栏中看起来很模糊.只要应用程序尚未启动,图标看起来就很好(即当它固定到任务栏时).一旦启动,Windows 就会使用主窗体的图标(而不是 .exe 资源图标),而且它是模糊的(看起来像是放大了 16x16 版本的图标). 我们用于 .exe 和主
..
关于 Microsoft 的通知区域建议,我正在寻找想法或 Delphi 组件来实现 通知区域弹出窗口. 第一个“自然"的想法是使用标准的 Delphi 表单,但我面临两个问题: 我无法使用标准的“BorderStyle"属性获取表单边框行为.尝试使用 GlassFrame 属性以及将 BorderStyle 设置为 bsNone 来“模仿"边框,但是当没有边框时没有 GlassFra
..
Windows 7 上的 Delphi 2007 对 saveDialog.Execute 调用没有任何作用.几周前我看到另一个人提到了这一点,但它是在 Borland c++ 中. 解决方案 查看
..
我正在准备一个Delphi模块,它在线程中设置一个钩子来记录一个宏: FHandleRec := SetWindowsHookEx(WH_JOURNALRECORD, FRecordProc, HInstance, 0);FHandlePlay := SetWindowsHookEx(WH_JOURNALPLAYBACK, FPlayProc, HInstance, 0); 这在 WinXP
..