代码之家  ›  专栏  ›  技术社区  ›  M Schenkel

是否可以在服务中使用从TwinControl派生的组件?

  •  2
  • M Schenkel  · 技术社区  · 15 年前

    我正在创建Delphi服务。是否有任何方法可以在服务中使用从TwinControl派生的控件?最终,控件及其上放置的所有控件都将保存为位图。但只要我尝试,我就会得到“控件没有父窗口”错误。

    我已经成功地创建了一个tbitmap,并且可以完成相同的功能。但是,将所有功能都内置到VCL中可以大大简化任务。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Rob Kennedy    15 年前

    你的程序抱怨控件没有父窗口,所以给它一个。创建一个窗体并将控件放在那里。表单可以是顶级窗口,因此它们不需要有父级。该窗体将用作其余控件的父窗口。

    它们仍然不可见,但至少会存在。

        2
  •  1
  •   dthorpe    15 年前

    我认为Windows服务不提供桌面服务。如果是这样(没有桌面),那么您将无法执行任何需要服务中窗口句柄的操作。

    Tbitmap在那里工作是因为它使用位图句柄和内存DC。不需要窗口句柄。

        3
  •  0
  •   sabri.arslan    15 年前

    因为Delphi服务应用程序不能使用TwinControl(窗体单元),所以我总是使用Windows服务包装器。最好的包装现在我知道NSSM。它是一个开源应用程序,在服务模式下以系统帐户权限运行您的应用程序。它可以控制应用程序退出代码并记录它。