TChromiumFMX - 在运行时创建

时间:2012-04-14 23:14:01

标签: delphi delphi-xe2 firemonkey

我目前正在尝试使用TChromiumFMX在Firemonkey中创建基本Web浏览器。我最初是为该项目发布的,但在几周内没有得到答复。

尝试在运行时创建TChromiumFMX时似乎存在问题。我最初尝试在我的应用程序中创建它。由于这会引发访问冲突错误,然后我尝试使用导出过程的DLL路由。

错误是这样的; 异常类:EAccessViolation 异常消息:模块中的地址访问冲突。读取地址00000000。

第一个地址似乎是随机的,取决于我在代码中的变化(尝试修复它的轻微调整,一切都无济于事),而第二个地址总是00000000。例如;在“ChromDLL.dll”中的地址0117B40A处访问冲突。读取地址00000000。

代码如下;

[Global Variables]
Chrom : TChromiumFMX;

[...]

Procedure Chrom_Create(AlignTo : TAlignLayout; ParentIn :
TFmxObject; DefaultURLIn : String); export;
begin
  Chrom := TChromiumFMX.Create(nil);
  Chrom.Parent := ParentIn;
  Chrom.Align := AlignTo;
  Chrom.Options.CaretBrowsingEnabled := True;
  Chrom.Options.ThreadedCompositingEnabled := True;
  Chrom.Options.EncodingDetectorEnabled := True;
  Chrom.Options.FullscreenEnabled := True;
  Chrom.Options.FileAccessFromFileUrlsAllowed := True;
  Chrom.DefaultUrl := DefaultUrlIn;
end;

这是来自DLL版本,但我在应用程序版本中编写的代码非常相似,并且也因类似的访问冲突而失败。

此问题仅发生在FMX / Firemonkey组件上,而VCL版本不会出现类似代码(TChromiumFMX替换为TChromium)。

我很好奇是否有人发现了这方面的修复程序?我已经搜索并搜索了几周,并且还没有找到解决方案,而且很少有人甚至在Google Code的问题页面上讨论类似的问题。我尝试使用代码的“应用程序内”版本强行将其所有者和父级分配给对象但是再次没有这样的运气。当我告诉它导航到URL时发生访问冲突。

我注意到,在创建表单时,我必须将“Application.OnIdle”调用为“doOnIdleEvent”并将“FLoading”调用为“False”,以便在设计时创建的初始浏览器窗口能够运行,但是当我在运行时创建一个时,我没有运气。

思想?

编辑:修正了一个不应该传播的拼写错误

0 个答案:

没有答案