【发布时间】:2016-08-07 20:15:45
【问题描述】:
我正在编写自己的组件,它继承自 TButton。我需要对将放置我的新组件的父表单进行一些操作。
那么,如何从我自己的组件代码中访问父表单?
代码示例(MyComponentCode.pas):
ButtonParent.Canvas.Pen.Color := RGB(255,255,255); // where "ButtonParent" have to be a parent form
帮我解决这个问题。谢谢。
【问题讨论】:
-
父控件不一定是表单,比如可能是
TPanel。明确您需要什么 - 父控件或所有者表单。 -
@user246408 我需要所有者表格。
-
那么你需要你的组件的
Owner属性;当您将组件拖放到表单上时,IDE 会设置它;我猜你需要了解 Delphi 中Owner和Parent之间的区别。 -
@user246408 tnx,它适用于我
-
@user246408:
Owner保证为TForm仅如果在设计时将组件放置在TForm上。如果将其放在TFrame上,则Owner将是TFrame。如果组件是在运行时在代码中动态创建的,则Owner将是调用者传递给组件构造函数的任何内容。组件从不对其Owner(或其Parent)实际上是什么做出任何假设。
标签: forms delphi components parent