Цветная панель

 

Подскажите, пожалуйста, как сделать вот такую панель (как на картинке)?

Какой класс взять за основу, и что переопределять?

"ControlsListView" позволяет создавать список с прокруткой, но

1. текст не графический,

2. цвет фона у каждой строки нельзя задать отдельно,

3. Оформить в виде таблички невозможно,

4. Добавить в конце символ для удаления строки нельзя, потому что клик по строке не перехватывается (а надо, чтобы перехватывался с учётом прокрутки, и геометрических размеров кнопки в конце строки)

===============

Извините, забыл картинку! Прикрепил

Цветная панель

Файлы:
Panel.png  5 kb
 
Evgeny Potapov:

Подскажите, пожалуйста, как сделать вот такую панель (как на картинке)?

Какой класс взять за основу, и что переопределять?

"ControlsListView" позволяет создавать список с прокруткой, но

1. текст не графический,

2. цвет фона у каждой строки нельзя задать отдельно,

3. Оформить в виде таблички невозможно,

4. Добавить в конце символ для удаления строки нельзя, потому что клик по строке не перехватывается (а надо, чтобы перехватывался с учётом прокрутки, и геометрических размеров кнопки в конце строки)

А картинка где?

 
Evgeny Potapov:

Подскажите, пожалуйста, как сделать вот такую панель (как на картинке)?

Какой класс взять за основу, и что переопределять?

"ControlsListView" позволяет создавать список с прокруткой, но

1. текст не графический,

2. цвет фона у каждой строки нельзя задать отдельно,

3. Оформить в виде таблички невозможно,

4. Добавить в конце символ для удаления строки нельзя, потому что клик по строке не перехватывается (а надо, чтобы перехватывался с учётом прокрутки, и геометрических размеров кнопки в конце строки)

===============

Извините, забыл картинку! Прикрепил


Возьмите внизу страницы листинг. Потом на его основе на панель добавляйте надписи, поля ввода, флажочки и пр.
 
Vasiliy Pushkaryov:
Возьмите внизу страницы листинг. Потом на его основе на панель добавляйте надписи, поля ввода, флажочки и пр.

Спасибо, но мне желательно с полосой прокрутки. Не могу понять: есть ли готовый шаблон, чтобы сразу привязывать объекты к полосе прокрутки, и они автоматически будут прокручиваться, или же полоса прокрутки просто самостоятельный объект, и передвижение остальных объектов надо самому организовывать по смещению ползунка.

 
Vasiliy Pushkaryov:
Возьмите внизу страницы листинг. Потом на его основе на панель добавляйте надписи, поля ввода, флажочки и пр.

С полосой прокрутки непонятно как работать самому.

Например, вот такой код:

void CAppWindowTwoButtons::OnScrollInc(void)  {
   Comment("Position of the scrollbar ",m_scroll_v.CurrPos());
   m_button1.Shift(0, SCROLL_STEP); // 
  }
void CAppWindowTwoButtons::OnScrollDec(void)  {
   Comment("Position of the scrollbar ",m_scroll_v.CurrPos());
   m_button1.Shift(0, -SCROLL_STEP); // 
}

Далеко не всегда возвращает кнопку в прежнее положение при движении ползунком скрола вверх-вниз. Очевидно, часть событий теряется на пути к функции.

Тогда через какую функцию сделать надёжное позиционирование?

 
А функция 
Move()
вообще выносит кнопку за пределы панели
 
Ау! Есть у кого-нибудь опыт программирования на MQL4? Ответе, пожалуйста, как перемещать объект по панели? Неужели единственный способ: дестроить и создавать заново в новой позиции?
 
Evgeny Potapov:

С полосой прокрутки непонятно как работать самому.

А этот класс смотрели?
 
Vasiliy Pushkaryov:
А этот класс смотрели?

Именно он лежит в основе моих экспериментов.

Сама полоса прокрутки в нём вполне рабочая, но вот сделать перемещение контента по прокрутке получается с трудом.

Надёжно работает только если дестроить контент полностью весь, и создавать заново на каждом движении полосы прокрутки. (Проблемы других способов см. выше)

Но есть сомнение, что именно так и представляли себе использование класса создатели.

Хотя, всё может быть! 

Было бы очень интересно увидеть пример кода прокрутки контента другим способом без разрушения-создания на каждом шаге.

Возможно, вы видели его на форуме или в статьях, но мне пока найти не удалось.

 
Evgeny Potapov:

Именно он лежит в основе моих экспериментов.

...

Возможно, вы видели его на форуме или в статьях, но мне пока найти не удалось.

Мне такое поведение никогда не нужно было, поэтому не разбирался. Но может кто-то и поможет, кто такое реализовывал.