Показать сообщение отдельно
  #1  
Старый 02.01.2015, 23:36
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию От какого TrackBar'a пришло сообщение о прокрутке

Здравствуйте.
Не могу понять как организовать вывод положение 2-х трэкбаров в 2-х Static'ах.
Делал по справке.
Если делаю так(сразу после запуска, static'и пусты):
Код:
function GetPosTrackBar(TB : HWND): Integer;
begin
  Result := SendMessage(TB, TBM_GETPOS, 0, 0);
end;

.....

WM_HSCROLL:
      begin
        case LOWORD(wParam) of
          TB_THUMBTRACK, TB_THUMBPOSITION, TB_LINEDOWN, TB_LINEUP:
          begin
            SetWindowText(Stat1, PChar(IntToStr(GetPosTrackBar(TB1))));
            SetWindowText(Stat2, PChar(IntToStr(GetPosTrackBar(TB2))));
          end; 
       end;
то естественно, в Stat1 и Stat2 будут записаны положение 1 и 2 трэкбара.

А так не работает:
Код:
WM_HSCROLL:
      begin
        case LOWORD(wParam) of
          TB_THUMBTRACK, TB_THUMBPOSITION, TB_LINEDOWN, TB_LINEUP:
          begin
            case LParam of
              Tb1ID: SetWindowText(Stat1, PChar(IntToStr(GetPosTrackBar(TB1))));
              Tb2ID: SetWindowText(Stat2, PChar(IntToStr(GetPosTrackBar(TB2))));
          end; 

Вопрос наверное уже понятен, но на всякий случай:
Как узнать от какого TrackBara поступило Сообщение об изменение позиции, т.е. если Static'и пусты(при создание текста нет), то при прокрутки одного трэкбара не было опроса второго?


Пока что сделал так
Код:
SetDlgItemText(Wnd, GetDlgCtrlID(LParam) + 1, PChar(IntToStr(SendDlgItemMessage(Wnd, GetDlgCtrlID(LParam), TBM_GETPOS, 0, 0))));

Но не думаю что это выход из положения.
Ответить с цитированием