delphi相关内容
刚刚从 Windows 8.1 更新到 Windows 10,现在当我尝试在 Delphi 2007 上打开任何项目时,我得到了他的错误: 无法加载项目 xxxxx 导入的项目未找到“c:\Windows\Microsft.NET...\Borland.Delphi.Targets".确认路径声明正确,并且该文件存在于磁盘上 有什么提示可以解决吗? 解决方案 您需要将旧 Win
..
我创建了两个应用程序 MainApps 和 SubApps,SubApps 有一个模式类型对话框,例如登录/注销表单等,并且工作正常. 将它附加到 MainApps 后,模态对话框显示为正常的框形式.它的行为类似于“DIALOG.SHOW"而不是“DIALOG.SHOWMODAL"; 我正在使用delphi编译器 子应用按钮点击; 开始用 TfrmDialog.Create(
..
我知道这个问题从以前就一直存在(例如 显示自定义消息对话框的最佳方式),但我仍然找不到我想要的. 我是这样开始的: 类函数 TAttracsForm.MessageDlg(const aMsg: string; aDlgType: TMsgDlgType; Buttons: TMsgDlgButtons; aCaptions: 字符串数组; aDefault: TMsgDlgBtn): T
..
在 Windows 98 时代之后,我们多次经历过一些对话框失去了它们的 Z-Order 并返回到以前的形式. 例如: Dialog1.ShowModal;Dialog1.OnClickButton() : ShowMessage('anything'); MessageBox 出现时,有时没有焦点,被移到Dialog1 下.用户对此感到困惑,他们说:我的应用程序冻结了!!!但如果他们使
..
我想测试一些表格.有没有办法模拟按下确定(或取消)按钮,以便按下按钮并触发与其关联的事件处理程序? 解决方案 最干净的方法是调用按钮的Click方法.由于以下原因,这比替代方案更好: 您可以读取 OnClick 属性,检查它是否为 nil,然后调用该方法.但这似乎毫无意义,因为 Click 方法已经做到了这一点.复制这段代码没有意义. 您可以直接调用事件处理程序,但这需要您的代码了
..
我正在使用旧的索尼爱立信手机编写和读取 AT 命令的小组件.向/从手机发送和写入完全没有问题,但是我希望能够暂停我的 SendATCmd 功能并等待 COM 端口组件通过通知事件通知我,然后再次恢复 SendATCmd 功能. 场景:我想获取手机中 SMS 消息的计数.通常我只会告诉电话:嘿,你有多少条短信?手机会在通知事件中回复.都很好. 但我真正想做的是 如果 SendATCmd
..
对于调试/性能测试,我想在运行时将日志代码动态添加到给定类型组件的所有事件处理程序中. 例如,对于数据模块中的所有数据集,我需要在 BeforeOpen 和 AfterOpen 事件中运行代码来捕获开始时间,并记录经过的时间在 AfterOpen 中. 我更喜欢动态地执行此操作(没有组件子类化),以便我可以仅在需要时将其添加到所有现有的数据模块和表单中. 迭代所有组件并按它们的类
..
我需要对 DBGrid 中的值进行格式化,以便以某种格式显示,例如 '#,##0.00'.知道该怎么做吗? 问候,彼得 解决方案 DataSet 中的每个字段都有两个事件:OnGetText 和 OnSetText.使用所需字段的事件 OnGetText 并使用 Format 函数使用掩码格式化值.
..
我在 Delphi 中使用 DBGrid 组件.我想知道如何设置列的格式.我有想要在网格中显示为货币的真实值. 有人知道吗? 解决方案 可以设置Field 的DisplayFormat您可以处理 OnGetText 事件.这种方法允许对值进行更复杂的操作.
..
我正在尝试让 Delphi 像 Excel 一样进行 Round,但我做不到.代码如下: procedure TForm1.Button1Click(Sender: TObject);变量s:字符串;c:货币;开始c := 54321.245;s := '';s := s + Format('变量: %m',[c]);s := s + chr(13);s := s + Format('Liter
..
我有两个 WGS84 坐标,以度为单位的纬度和经度.这些点相当接近,例如相距仅一米. 有没有简单的方法可以计算出这些点之间连线的方位角,也就是向北的角度? 天真的方法是假设一个笛卡尔坐标系(因为这些点非常靠近)然后使用 sin(a) = abs(L2-L1)/sqrt(sqr(L2-L1) + sqr(B2-B1)) a = 方位角L1, L2 = 经度B1, B2 = 纬
..
我正在寻找一种用于自动化测试的工具.我将使用脚本进行测试,而不仅仅是自动化,这意味着它不能只发送一些按键.它需要检查应用程序的窗口以查看它是否已正确更新.越便宜越好,成本没有下行限制.;-) 我需要一门真正的语言,具有函数、变量、循环、分支等,并且应用程序是在 Delphi 中开发的. 我需要能够聚焦控件*,等待窗口出现,搜索控件/窗口,发送键盘输入并检查各种窗口/控件是否已更改状态(
..
我需要一个用 Pascal/Delphi/Lazarus 编写的逆透视变换.见下图: 我想我需要遍历目标像素,然后计算源图像中的相应位置(以避免出现舍入误差等问题). function redraw_3d_to_2d(sourcebitmap:tbitmap, sourceaspect:extended, point_a, point_b, point_c, point_d:tpoint,
..
在一个线程中,如果我使用 有区别吗 Coinitialize(nil) 而不是 CoInitializeEx(0, COINIT_MULTITHREADED); 我使用的是 Delphi 7,但我认为这个问题对于其他编程语言仍然存在感谢您的帮助. 解决方案 前者初始化 COM 的方式是将调用线程放入自己的单线程单元 (STA).后者以将调用线程放入共享多线程单元 (MTA) 的方
..
我的测试 Delphi 2006 BDS 应用程序中有以下代码: procedure TForm1.Button1Click(Sender: TObject);常量olMailItem = 0;变量展望:OleVariant;vMailItem:变体;开始Outlook := CreateOleObject('Outlook.Application');vMailItem := Outlook.
..
有一个代码: 变量我的对象:OleVariant;开始myobject := CreateOleObject('SomeNamespace.SomeClass');结尾; 此 COM 对象具有事件(例如 OnClick).我应该如何在不导入 TLB 的情况下连接到这些事件? 解决方案 您正在使用 COM 后期绑定,所以您需要编写大量代码来处理事件.如果你了解 COM,这个任务并不难,基
..
我已经将一个古老但仍然有用的 Delphi 5 应用程序变成了一个进程外 COM 服务器.我隐约记得有一种方法可以判断它是由用户直接启动还是作为服务器启动.我知道我以前做过,但我不记得/不知道怎么做.也许是命令行开关? 解决方案 不知道在Delphi 5中是否有这个功能,但是在Delphi 2010中可以查询全局ComServer对象的启动模式: 如果 ComServer.StartMo
..
我的问题和这两个很相似: C# 组件事件? C# - 编写 COM 服务器 - 事件不在客户端触发 但是,对他们有效的方法对我无效.类型库文件没有任何事件定义的提示,所以 Delphi 看不到它.如您所料,该类适用于其他 C# 应用程序. COM 服务器工具: Visual Studio 2010 .NET 4.0 Delphi 应用程序: 德尔福 20
..
在Delphi 中,如何找出COM 方法的地址?我可以硬编码偏移量 //0是QueryInterface方法的偏移量p := TPonterArray(指针(SomeInterface)^)[0]; 但我更喜欢使用符号名称.以下显然不起作用: var M : TMethod;...M := TMethod(SomeInterface.QueryInterface); 谢谢! 解决方案
..
在 C/C++ 中使用 getopt() 解析命令行参数并不容易. Delphi 有类似的东西吗?或者理想情况下,使用相同的语法?我知道 Delphi 支持 FindCmdLineSwitch 和 ParamStr(),但它们仍然需要一些额外的解析. 我想要像 C 中的 getopt() 一样工作的东西.可以轻松实现基本切换开关以及在切换后捕获值的东西.请参阅下面的一些示例 C 代码以
..