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

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

TMHTrackBar - OnChange [Delphi, Windows]


BaryVetaL ©   (2006-03-17 12:04:00) 

Кто пожет помочь: как к TMHTrackBar прикрутить событие OnChange?
Спасибо!


BaryVetaL   (2006-03-21 10:21:00) [1]

Понял почему не мог попасть на OnChange, здесь его нет вовсе, есть OnScroll :-)


Vladimir Kladov   (2006-03-18 14:07:00) [2]

Кстати, свой trackbar обновил - тоже была проблема с OnChange с новым способом хранения связки объекта с окном (USE_PROPS), теперь этот символ учтен. KOLCCtrls.zip (KOLTrackbar в Дополнениях)


ECM   (2006-03-17 16:00:00) [3]

Попробуйте тогда вот эту версию (ссылка временная)
http://www.kolnmck.ru/KOLMHTrackBar.zip
Если не заработет - надо смотреть Ваш код...


BaryVetaL   (2006-03-17 14:49:00) [4]

Нет все равно не работает...


ECM   (2006-03-17 13:44:00) [5]

Работает - работает ... :)
Я перед тем как отвечать всё  проверил... (правда на MCK - но это здесь неважно). Скорее всего у Вас почему то при компиляции KOL.PAS не устанавливается $DEFINE USE_PROP. Проверьте... но можете и без USE_PROP. Только исправьте в KOLMHTrackBar.pas :

function WndProcTrackbarParent(Sender: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
var
 Trackbar: PMHTrackbar;
 Bar: TScrollerBar;
begin
 Result := FALSE;
 if ((Msg.message = WM_HSCROLL) or (Msg.message = WM_VSCROLL)) and (Msg.lParam <> 0) then
 begin
{$IFDEF USE_PROP} 
   Trackbar := Pointer(GetProp(Msg.lParam, ID_SELF));
{$ELSE}
   Trackbar := Pointer( GetWindowLong( Msg.lParam, GWL_USERDATA ) );
{$ENDIF}
   
   if Trackbar <> nil then
   begin
     if Assigned(Trackbar.OnScroll) then
     begin
       if Msg.message = WM_VSCROLL then
         Bar := sbVertical
       else
         Bar := sbHorizontal;
       Trackbar.OnScroll(Trackbar, Bar, LoWord(Msg.wParam), HiWord(Msg.wParam));
     end;
   end;
 end;
end;


BaryVetaL   (2006-03-17 13:30:00) [6]

Чего то не шибко получается. На всякий случай, скажу, что я имею ввиду использование в KOLбез MCK (если ты имеешь ввиду использование в MCK).


ECM   (2006-03-17 12:14:00) [7]

Оно уже есть! Поставьте в опциях проекта USE_PROP. Пересоберите его и пользуйтесь событием OnScroll.
Попозже я поправлю MHTrackBar так чтобы OnScroll работал и без USE_PROP.


Наверх

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