История изменений
Исправление tp_for_my_bunghole, (текущая версия) :
Ну так почему это
if Sender is TComponent then
лучше чем
if(dynamic_cast<Component*> (sender()))
Это очевидно для тех кто хоть раз работал с генератором парсеров(LALR), что так же связано со сложностью кода в компиляторе. Может очевидно для многих просто визуально.
Нo эквивалент этой C++ строки в Object Pascal будет:
Sender as Component
Как и в C++, бросается исключение, которое надо ловить.
A C++ эквивалент оператора «is» кажется это:
if (typeid(*sender).name().compare("Component") != 0)
Если name() всегда возвращает std::string
Исходная версия tp_for_my_bunghole, :
Ну так почему это
if Sender is TComponent then
лучше чем
if(dynamic_cast<Component*> (sender()))
Это очевидно для тех кто хоть раз работал с генератором парсеров(LALR), что так же связано со сложностью кода в компиляторе. Может очевидно для многих просто визуально.
Нo эквивалент этой C++ строки будет:
Sender as Component
Как и в C++, бросается исключение, которое надо ловить.
A C++ эквивалент оператора «is» кажется это:
if (typeid(*sender).name().compare("Component") != 0)
Если name() всегда возвращает std::string