【问题标题】:Imported ActiveX Control in Delphi 10.2 CE Unavailable In PaletteDelphi 10.2 CE 中导入的 ActiveX 控件在调色板中不可用
【发布时间】:2019-01-02 17:25:10
【问题描述】:

我正在使用社区版,但不知道在这方面有任何限制。

我已通过Component |> Import Component... 导入mstscax.dll 并选择“ActiveX”。该组件未显示在组件面板中,直接编辑 DFM 以包含 TMsRdpClient[digit] 组件会导致表单生成器错误,指出无法找到该组件。

但是,如果这些错误被“取消”而不是“忽略”,则可以构建和运行预制项目(RDPWrap 的RDPCheck)。还需要解决错误mentioned here

在我自己创建的项目中,我可以将生成的文件MSTSCLib_TLB 添加到uses 子句中,并将TMsRdpClient7 类型的变量添加到表单中。在FormCreate 函数中(例如)我可以调用TMsRdpClient7.Create(Self) 然后访问对象的属性。如果我设置了足够多的属性(见下文),我会在调用 TMsRdpClient7.Connect 后获得授权弹出窗口并看到登录屏幕。

  with RDP do
  begin
    Left := 0;
    Top := 0;
    Width := Self.Width;
    Height := Self.Height;
    Parent := Self;
    Visible := True;

    DisconnectedText := 'Disconnected.';
    UserName := '';
    Server := '127.0.0.2';
  end;

【问题讨论】:

  • 当您导入 ActiveX 时,您是否勾选了 Generate component wrappers 并为其分配了一个调色板页面?
  • @KenWhite:如果我没有,我相信MSTSCLib_TLB.pas 不会生成。我试图将组件放置在 ActiveX 页面(默认情况下不显示)和其他一些已经填充的页面中。两次都没有出现。
  • 没有。无需为调色板创建组件即可导入 ActiveX 控件。 (如果不是这种情况,将不会有一个复选框来检查以表明您想要这样做,会吗?)我的机器上有几十个 _TLB.pas 文件,这些文件在 VCL 调色板上没有组件。 TLB 文件根本不需要生成任何组件代码。
  • 我看到的唯一复选框看起来像是确定是否生成了类型标题 .pas 文件。我勾选了任何看起来相关的内容并选择了组件选项卡。查看已接受的答案。

标签: delphi com activex


【解决方案1】:

在 Delphi 10.2.3 上导入 MSTScax.Dll 对我来说效果很好,并导致 25 个组件显示在组件选项板的 ActiveX 选项卡上,从 TMsTScaxNotSafeForScripting 组件开始。

我可以发布使用的确切步骤,但我想知道您是否只是缺少一个步骤:

在您将ConnectWithEndpoint 属性类型更正为OleVariant 并编译包含您的导入单元MSTSCLib_TLB.Pas 的包后,我们称之为RDP.Pkg,您需要转到Project Manager,对-单击RDP.Bpl 并单击Install - 然后,它应该显示在ActiveX 选项卡上。这对你有用吗?

顺便说一句,我是从 Win10 64 位上的桌面链接以普通方式启动 Delphi,而不是使用“以管理员身份运行”等特殊措施。

【讨论】:

  • 不同之处在于选择Install to New Package 并创建包以获得.bpl。否则会显示调色板页面选择,但组件永远不会显示。
猜你喜欢
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多