В приложении Delphi 10.4 VCL TCard
(как элемент-контейнер TCardPanel
) не имеет общедоступных событий OnShow
и OnHide
(как TTabSheet
).
Следовательно, обработчик события TCard.OnEnter
НЕ запускается, когда конкретный TCard
АКТИВИРУЕТСЯ. Обработчик событий TCard.OnEnter
запускается ТОЛЬКО, когда, например. нажав на элемент управления на TCard
.
Пример кода:
CardPanel1.ActiveCard := Card2;
В этом случае событие TCard.OnEnter
НЕ срабатывает!
Можно ли обновить класс TCard
с помощью общедоступных событий OnShow
и OnHide
? Или можно смоделировать эти события?
PrevCard.Name
илиNextCard.Name
в качестве строки в этом обработчике событий для идентификации карты, я получаю ошибку времени выполнения. Теперь я мог бы использоватьNextCard.Caption
для идентификации карты, но это приводит к запаху кода, поскольку подписи могут меняться во время выполнения. САМОЕ ЧИСТОЕ решение — перейти на событиеTCard.OnShow
. - person user1580348   schedule 05.07.2020ActiveCard
? - person Olivier   schedule 05.07.2020OnCardChange
событии. - person Olivier   schedule 05.07.2020OnCardChange
уже имеет параметрыNextCard
иPrevCard
. - person user1580348   schedule 05.07.2020if NextCart = Card1
или `if PrevCard = Card2' или что-то еще, что здесь имеет смысл. Трудно давать советы, не зная практического применения. - person Uwe Raabe   schedule 05.07.2020