LINUX.ORG.RU

История изменений

Исправление 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