-
awkward (03.10.10 13:46) [0]В своей программе я использую форму, реализованную с помощью KOL. Там я использую Trackbar (KOLCCtrls компонент). Ранее я перехватывал OnEraseBkGnd с пустым телом процедуры, что позволяло мне рисовать прозрачный фон (показывать только полоску самого трекбара и слайдер), но в версии 3.00 этот метод почему-то не сработал. фон рисуется. Кто-нибудь сможет подсказать, как правильно реализовать эту задачу теперь?
PS. сам контрол создавался как
result:=NewTrackbar(AOwner,[trbNoTicks,trbBoth,trbNoBorder],nil); -
Забыл приаттачить обработчик в новой версии Set_OnEraseBkgnd:procedure TControl.Set_OnEraseBkgnd(const Value: TOnPaint);
begin
ProvideUniqueEvents.fOnEraseBkgnd := Value;
AttachProc( WndProcEraseBkgnd ); <- вот тут
end;
Только не знаю, насколько поможет. Не рисовать совсем ничего как бы не совсем правильно, если родительский контрол исключает дочерние из рисования (как по идее и работают виндовые контролы). Корректный способ - это рисоватьв OnEraseBkgnd тот фон, который нужен, чтобы он был. Но это мудренее. -
awkward (03.10.10 16:14) [2]Спасибо. я делаю по-дурацки, но проще. мне главное, чтоб сам контрол был прозрачным.