Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TrackBar


Автор: MrKit 18.1.2007, 18:36
Облазил все что можно в инете и исходниках, не могу сообразить. Где-то же он устанавливается?..

Автор: Sunvas 18.1.2007, 18:47
А что ты имеешь в виду, когда говорить о цвете выделения в TrackBar smile 

Автор: MrKit 19.1.2007, 00:02
У TrackBar есть свойства SelEnd и SelStart, которые определяют выделение - закрашенную часть белой полосы. Вот цвет этого выделения я и хочу изменить. Компонент отрисовывается Windows, с использованием цвета текущей цветовой схемы. Как можно влезть в отрисовку - я не могу докопаться  smile 

На форуме Borland X Portal нашел "подсказку" по этому вопросу:
Цитата

WM_NOTIFY 
NMCUSTOMDRAW 
TBCD_THUMB 

но мне это пока мало о чем говорит.  smile 

Автор: MrKit 24.1.2007, 14:37
Ну что, никто не знает? Проблема не решилась!  smile 

Автор: CatATonik 24.1.2007, 14:56
Нужно обрабатывать сообщение CN_NOTIFY и рисовать ручками.

Автор: CatATonik 24.1.2007, 15:16
Код

procedure TMyTrackBar.CNNotify(var Message: TWMNotify);
var
  Info: PNMCustomDraw;
begin
  with Message do
    if NMHdr.code = NM_CUSTOMDRAW then
    begin
      Info := Pointer(NMHdr);
      case Info.dwDrawStage of
      CDDS_PREPAINT:
        Result := CDRF_NOTIFYITEMDRAW;
      CDDS_ITEMPREPAINT:
        if Info.dwItemSpec = TBCD_CHANNEL then
        begin
          Рисуем тут
          Result := CDRF_SKIPDEFAULT;
          Exit;
        end;
      else
        inherited;
      end;
    end
    else
      inherited;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)