Delphi - Как узнать, что делает компонент «за кулисами» - PullRequest
0 голосов
/ 10 марта 2011

Я пытаюсь написать нового потомка компонента от общего компонента (TDateTimePicker). Моя конечная цель заключается в создании подкласса TDateTimePicker, чтобы при входе пользователя в компонент «SelText» устанавливался для определенной части DateTime.

В данный момент поведение TDateTimePicker заключается в фокусировке последнего выделенного текста, когда он снова получает фокус. Сначала я хотел бы найти (посмотреть) код, который фактически выполняется, когда пользователь фокусирует TDateTimePicker.

Я вижу, что TDateTimePicker является потомком TCommonCalender, который, в свою очередь, является потомком TWinControl. Но я попытался поместить точку останова на процедуры в TWinControl, и они не могут быть достигнуты (что, я думаю, является правильным поведением, поскольку многие компоненты наследуются от TWinControl).

Так как мне узнать, что происходит, когда пользователь вводит TDateTimePicker? Какой код запускается? Это все скрыто? Я надеюсь, что это может пролить некоторый свет на то, что мне нужно сделать, чтобы переопределить поведение по умолчанию для достижения моей цели.

Ответы [ 2 ]

4 голосов
/ 10 марта 2011

TDateTimePicker - оболочка для стандартного элемента управления Windows.Оболочка Delphi просто отправляет сообщения в элемент управления Windows, так что кода Delphi не так много для чтения.

Вам придется рассматривать TDateTimePicker как «черный ящик».Что бы там ни происходило, это деталь реализации, о которой вы не должны заботиться.Фактически детали реализации для средства выбора даты и времени изменились, например, в Windows 7!

3 голосов
/ 10 марта 2011

В Project | Options | Compiler отметьте «Использовать отладочные DCU» и перестройте приложение.В зависимости от версии Delphi этот флажок можно найти в разных местах, например, для Delphi 2007.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...