我正在尝试将程序从 Delphi 2010 转换为 Delphi XE7(32 位/windows VCL)。曾经在 D2010 中通过后期绑定 OLE 自动化 Excel 的代码现在在 Delphi XE7 中给出异常“无法设置应用程序类的窗口状态属性”,当应用程序最大化或最小化时。
我从具有这些常量的 ExcelXP 单元中获取常量 xlmaximized 和 xlminimized: xlMaximized = $FFFFEFD7; xlMinimized = $FFFFEFD4;
但是,如果我使用简单的常量值 -4137 和 -4140,程序确实可以正常工作。我意识到我必须做一些简单的事情是错误的。
下面是一些说明问题的示例代码。我对此进行了测试,它在 Delphi 2010 中有效,但在 Delphi XE7 中无效。我想这一定与新版本中如何处理常量有关(?)有人能指出我正确的方向吗?提前致谢!
//XLA is a global variable of type OLEVariant;
//Program uses ComObj and ExcelXP unit
//This proc just runs or connects to Excel
procedure TForm3.RunExcelClick(Sender: TObject);
begin
try
xla := GetActiveOLEObject('Excel.Application');
except
try
xla := CreateOleObject('Excel.Application');
except
on E: Exception do …
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的 Delphi XE7 程序。它基本上只是一个嵌入在表单中的 TWebBrowser 组件,除了触发 Browser.Navigate 方法的按钮外,没有附加额外的代码。我的理解是 TWebBrowser 只是 IE 的 ActiveX 包装器。
我试图用它来显示一个非常简单的页面,该页面引用了 D3 Javascript 库(但到目前为止还没有对它做任何事情),并且网页是从使用 WAMPSERVER 在我的 PC 上运行的本地主机网络服务器提供的。
网页在 Chrome 或 IE 11(我有 Windows 7,64 位)中运行得很好。但是,当我尝试在 Delphi/TWebBrowser 程序中查看它们时,我收到了 IE 错误消息“此页面上的脚本发生错误”(见附图)。尝试访问本地主机上 d3test/d3 文件夹中的 d3.js javascript 库时似乎会发生该错误。我已经验证 d3.js 文件确实存在于这个文件夹中,这似乎可以通过页面在 Chrome 和 IE 中运行和显示的事实来证明。
也许嵌入式 Web 浏览器访问本地托管页面存在问题?其他背景 - 我还清除了 IE 缓存,重置了 Windows 控制面板上的 Internet 选项,将 IE 安全设置设置为最低级别,并暂时禁用了我的诺顿防火墙/病毒扫描程序。
有没有人对此有任何想法?我真的希望能够在我的基于 Windows 的程序中嵌入一些 D3 图表。
这里也是html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>D3 Test</title>
<script type="text/javascript" src="d3\d3.js"></script>
</head>
<body>
Hello World …
Run Code Online (Sandbox Code Playgroud)