1) Вот мне интересно, сколько ты еще мозги компостировать будушь со всякими HiAsmFont2KolFont. В share давно определена (и не просто определена, а используется) _hi_SizeFnt. Причем делает это более правильно.
2) Не считая того, что в Init вызывать inherrited - обязательно
3) Убери поле fHandle вообще, и везде говори Control.Perform
4) Оконная ф-я читает поле Control.Tag и пляшет от него. Так установи его (в Init) в нужное тебе значение (вообще-то это Self)

И вызывай там сразу _event__OnChange без всяких проверок, тройных вызовов и листаний поинтеров.
_hi_OnEvent(fControl._event_OnChange); //!!![/code]А все остальное на этот предмет - выкинуть к чертовой матери.
fOnChange : TOnEvent;
procedure _OnChange(Sender:PObj);
...
property OnChange : TOnEvent read fOnChange write fOnChange;
...
Control.OnChange:= _OnChange;
...
procedure THIDatePicker._OnChange;
begin
_hi_OnEvent(_event_OnChange);
end;
Пляски с бубном ведь какие-то...
5) на фига тебе Killer ??? Деструкторы уже не в моде что-ли... Никаких Add2AutoFree - нет к этому аргументов
[hr]Доводи. Будем разбираться дальше.
Уже больше в интерфейсном аспекте, видимо