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

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

Проблемы с KOLTrackbar


danger ©   (2007-06-22 19:54:00) 

Delphi 7, KOL 2.67. Неправильно обрабатывается событие OnScroll для KOLTrackBar. В файле KOLCCtrls.pas нужно заменить строчку:

function WndProcTrackbarParent( Sender: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
var D: PTrackbarData;
   Trackbar: PTrackbar;
begin
 Result := FALSE;
.........
    Pointer( GetProp( Msg.lParam, ID_SELF ) );
   if Trackbar <> nil then
   begin
.........
end;

на альтернативный вариант:

Trackbar := Pointer( GetWindowLong( Msg.lParam, GWL_USERDATA  ) );


Danger   (2007-06-22 20:45:00) [1]


> Vladimir Kladov   (22.06.07 20:30) [2]
> Это было еще до перехода на Get/SetWindowLong( GWL_USERDATA,

Да, со старыми версиями работало нормально. С новыми надо подправить.

>Можно заменить, или использовать USE_PROP в опциях.

Тогда так, чтобы сохранить единый стиль с новым KOL.pas:

function WndProcTrackbarParent( Sender: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
var D: PTrackbarData;
  Trackbar: PTrackbar;
begin
Result := FALSE;
.........
  {$IFDEF USE_PROP}
  Trackbar:= Pointer( GetProp( Msg.lParam, ID_SELF ) );
  {ELSE}
  Trackbar := Pointer( GetWindowLong( Msg.lParam, GWL_USERDATA  ) );
  {$ENDIF}

  if Trackbar <> nil then
  begin
.........
end;


Vladimir Kladov   (2007-06-22 20:30:00) [2]

Это было еще до перехода на Get/SetWindowLong( GWL_USERDATA,.
Можно заменить, или использовать USE_PROP в опциях.


Danger   (2007-06-22 19:57:00) [3]

В смысле,
Trackbar := Pointer( GetProp( Msg.lParam, ID_SELF ) );
на Trackbar := Pointer( GetWindowLong( Msg.lParam, GWL_USERDATA ) );


Наверх

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