4

我想在 PageControl 上实现一个关闭按钮,我也读过这个问题How to implement a close button for a TTabsheet of a TPageControl
事情是我不知道如何实现 Ulrichb 的答案中提供的代码...他们是否构建了 TPageControl 的新组件后代?如果有人可以解释在哪里编写某些代码,我将不胜感激!我有一个在我学校知道一点德尔福的老师,但他帮不了我。如果这是一个愚蠢的问题,我很抱歉,但我是德尔福和编程的新手。

4

1 回答 1

4

您链接到的问题中的代码不会创建新组件。相反,它通过使用页面控件的事件来实现自定义绘图。特别是这些事件:

  • OnDrawTab
  • 鼠标按下
  • 鼠标移动
  • 鼠标离开
  • OnMouseUp

您必须使用 Delphi 表单设计器将这些事件处理程序连接到匹配的事件以使代码工作。

在回答该问题时可能选择这种方法是为了简单,但它不适用于具有许多具有页面控件的表单的应用程序。在这种情况下,您会想要派生一个新的页面控件组件。

如果您这样做,那么您需要覆盖以下方法,而不是使用事件:

  • 绘图标签
  • 鼠标按下
  • 鼠标移动
  • 鼠标向上

除此之外,您必须复制该OnMouseLeave行为。这需要一个消息处理程序。

procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
....
procedure TMyPageControl.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  if Message.LParam=0 then
  begin
    // move OnMouseLeave code here
  end;
end;
于 2012-05-03T11:10:34.697 回答