Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Компонент TrackBar и событие OnMouseUp... [D6, WinXP]


МикроДИП ©   (2006-06-03 08:03:00) 

Доброе время суток ! Знаю что этот вопрос проскакивал здесь неоднократно, но я что-то не нашёл вразумительного для себя ответа. В компоненте TrackBar нет события OnMouseUp. Сейчас я нашёл для себя решение, как предложил некто CyberWolf, просто заново написан компонент, где в описании класса описано published OnMouseUp и т.д. Но я вот хотел бы узнать, может существует какое ещё решение, чтобы подцепить к родному компоненту TrackBar (а не к вновь созданному) событие OnMouseUp... И ещё вопрос: ведь TrackBar создан от TControl... Но почему он не имеет этого события ? Ведь в TControl оно есть... Извиняюсь если вопросы делитантские. Заранее благодарю !


Юрий Зотов   (2006-06-03 14:50:00) [1]

> МикроДИП   (03.06.06 14:27) [2]
> как в run-time событию OnMouseUp присвоить обрабатываемую процедуру.

Как обычно. Все сказано тут:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342

Но к разработке компонентов это не имеет никакого отношения, поэтому обязан ветку закрыть.


МикроДИП   (2006-06-03 14:27:00) [2]

Юрий, спасибо что откликнулись. Я в Дельфи не силён... Подскажите пожалуйста как в run-time событию OnMouseUp присвоить обрабатываемую процедуру. Вы написали TMyTrackBar(TrackBar1).OnMouseUp:=... а дальше ? Прошу ногами не пинать :(


Юрий Зотов   (2006-06-03 10:14:00) [3]

Ничего никуда цеплять не надо, стандартный TrackBar и без цепляния уже имеет унаследованное событие OnMouseMove, просто он его не публикует. Переносим объявление в секцию published - и всех дел. Как и "предложил некто CyberWolf". Только без всяких "и т.д." - там не нужно писать ни одной строчки кода, нужно просто объявить свойство (причем даже без всяких read-write):

type
 TMyTrackBar = class(TTrackBar)
 published
   property OnMouseMove;
 end;

Если назначать обработчик события только в run-time, то можно обойтись и без этого. Достаточно в любом месте модуля объявить

type
 TMyTrackBar = class(TTrackBar);

и тогда в любом месте ЭТОГО же модуля НИЖЕ этого объявления секция protected становится доступна через приведение типа:

TMyTrackBar(TrackBar1).OnMouseMove := ...;


Наверх

Титульная страница Поиск, карта сайта Написать письмо