- 1
- 2
- 3
- 4
procedure PP.Execute;
begin inherited;
(Sender as TIndusImage).KOT;
end;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1000
procedure PP.Execute;
begin inherited;
(Sender as TIndusImage).KOT;
end;
В Delphi XE, не знаю с какой версии начиная (в XE7 и XE8 точно) крупные проблемы с TGifImage, а если точнее - если быстро и много их менять, то рано или поздно вываливается тупо всё вместе с интерфейсом (100% где-то в потоках налажали), причем если быстро менять BMP, то всё ОК.
Пришла в голову идея в потоке самому менять кадры анимации, подгружая их как BMP, и дабы затестить сработает ли вообще, начал писать тестовую прогу.
Писал особо не заботясь ни о чем, а потом заметил вот таких индусских котов.
>> KOT
1. Первое поле — дескриптор. В нём хранится числовое значение, указывающее на тип значения второго поля.
2. Второе поле — вариантное (в терминах языка Си — union).
Но, увы, автоматического преобразования типов, как в PHP, нет. Нужно явно вызывать функции преобразования.
Очень мало библиотечных функций принимают на вход Variant.
И вообще его почти не используют. Разве что для того, чтобы написать самодельный аналог функции printf для доказательства, что «всё можно сделать своими руками». Троллейбус из буханки, короче.
Я правильно понимаю, что так можно закодировать лишь заранее известное подмножество типов? Подход не расширяемый?
Ну т.е. понятно, что туда можно впихнуть какой-нибудь Object, но как потом понять, какой был первоначальный тип? instanceof?
А в c++ есть boost::any, в котором можно хранить значение любого типа, который можно копировать. И что теперь...
Хотя скорее всего он ничего в делфи не видел
Я его иногда использую для message-passing style.
Его уже давно недостаточно... В него, к примеру, даже указатель или размер блока памяти кастануть нельзя. А указатель на член - и подавно.
Это уже не модно
https://images.encyclopediadramatica.se/thumb/4/48/Potatotron2000.jpg/800px-Potatotron2000.jpg
Зачем, если можно обвинить приписать свою глупость и лень - разработчикам.
Слово inherited тоже лишнее. Execute - виртуальный метод.
В делфи гифки через COM объект реализованы?