На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Обязательно выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Этот раздел предназначен для вопросов, посвященных разработке компонентов, а также для тестирования собственных бесплатных компонентов с открытым исходным кодом.

Здесь запрещается:
1. Размещать ссылки на какие-либо коммерческие компоненты, реализующие требуемую функциональность.
2. Обсуждать и тестировать коммерческие компоненты или компоненты с закрытым кодом.
3. Давать ссылки на сайты с исходным кодом компонентов. Все тестируемые исходные коды должы быть размещены на сайте ИСХОДНИКИ.RU.
Модераторы: Rouse_, DimaBr
  
> TListBox со своим скрол бором , скинирование
    Ребята не ругайтесь сильно тут есть похожая тема но ответа на ней нет нужного мне. Собственно что нужно.
    Взять за основу ListBox к примеру и нарисовать свой скрол бар. Идеи как это сделать есть вот вопросы.
    Скол бар у ListBox, Memo, TreeView это всего лишь рисунок vcl или же это окна от виндовс?
    Если перехватить сообщение WM_NCPAINT тогда надо все все самому рисовать. Но тогда как знать какой именно итем рисовать? С какой позиции? Еще как подсчитывать перемещение скрол бара во всех случаях действий пользователя?
      Где то вычитал что скролы это только рисунок. У меня появилась идея дать перерисоватся листбоксу как ему надо, затем поверх скролов нарисовать свои. Теперь вопрос как не дать среагировать старым скролам? И как при нажатии на скрол заставить перерисоватся компоненту :blink: Все же лучше я думаю рисовать все самому потому nxj фон еще желательно изменить.
        Чего проще взять и посмотреть исходники VCL StdCtrls.pas, класс TListBox ? )
          Цитата RuSA @
          Чего проще взять и посмотреть исходники VCL StdCtrls.pas, класс TListBox ? )

          Я посмотрел и мне пришла в голову идея как это все сделать. Перехватываешь WM_NCPAINT там рисуем фон если надо. Перехватить метод
          ExpandedWrap disabled
            procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;

          Там рисовать итемы. Только одно я не разобрал. Вот я догадываюсь что по сообщению mouse down идет прокрутка мне значит надо отловить собщение. Но как прокручивать? Где это свойство находтся(переменная), я так понимаю надо у WinControl его изменять верно?
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0203 ]   [ 17 queries used ]   [ Generated: 29.03.24, 05:55 GMT ]