≈сли вы внимательно просмотрите исходные тексты компонентных классов VCL, то обнаружите, что в них широко используютс¤ методы диспетчеризации событий, которые в большинстве случаев просто реализуют проверку определенности обработчика событи¤ и его вызов:

if Assigned (FXXXX) then FXXXX(...);

 азалось бы, выделение отдельного метода на реализацию единственного и не очень сложного оператора Ч чрезмерна¤ роскошь. “ем не менее это так, и сделано это не случайно: от любого компонентного класса VCL может наследовать нестандартный компонент; если ему понадобитс¤ привнести в обработку того или иного событи¤ свою функциональность, то ему гораздо проще перекрыть метод диспетчеризации, чем событие в целом (см. 9.2.3). “аким образом, создание методов диспетчеризации событий следует считать хорошим стилем разработки компонента (или вы уверены, что никто не захочет улучшить ваш компонент?).

ѕри создании метода диспетчеризации следуйте следующим простым рекомендаци¤м:

Х объ¤вл¤йте метод как динамический (dynamic) в секции protected, в этом случае наследник вашего компонента сможет без труда его перекрыть;

Х никогда не предполагайте, что у компонента должен быть обработчик того или иного событи¤.

9.3.3. -оздание свойства-событи¤ || ќглавление || 9.4. ќбработка сообщений Windows и компонентных сообщений


Искусство создания компонентов Delphi



Новости за месяц

  • Сентябрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс