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

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

Здесь запрещается:
1. Размещать ссылки на какие-либо коммерческие компоненты, реализующие требуемую функциональность.
2. Обсуждать и тестировать коммерческие компоненты или компоненты с закрытым кодом.
3. Давать ссылки на сайты с исходным кодом компонентов. Все тестируемые исходные коды должы быть размещены на сайте ИСХОДНИКИ.RU.
Модераторы: Rouse_, DimaBr
  
> Визуальный компонент пианино
    Привет всем. Ломаю голову над тем, как грамотнее сделать этот компонент...
    там и кнопки нестандартной формы и немалое количество кнопок которые нужно однообразно обрабатывать и которые должны иметь состояния...
    Есть идеи?

    Прикреплённый файлПрикреплённый файлpiano.jpg (37,4 Кбайт, скачиваний: 705)
    Сообщение отредактировано: eXtr0gen -
      Каждая кнопка - картина, разные состояния разные картинки

      черные кнопки - картинки положенные поверх белых
        Для каждой кнопки рассчитать регион, держать его в памяти, при нажатии мышки просто пробежаться по массиву регионов вызывая функцию PtInRegion для определения над какой кнопкой мы находимся.
          Цитата Rouse_ @
          Для каждой кнопки рассчитать регион

          а как показать какая кнопка нажата

          Цитата eXtr0gen @
          которые должны иметь состояния
            Цитата Frees @
            а как показать какая кнопка нажата

            Держать массив состояний, по нажатию мышки менять его данные и отрисовывать соответствующим образом.
              Набор панелек разного цвета с разными бордюрами. "Кнопки" все прямоугольные, просто чёрные лежат поверх белых.
                Тебе нужны ресурсы:
                одна чёрная кнопка в двух состояниях (нажата/отжата) с альфаканалом (если хочешь отбрасывать тень на белые кнопки)
                три белых кнопки в двух состояниях (три - потому что возможны 3 вида стыка с чёрными кнопками

                Думаю, что кнопки всё же правилнее делать не массивом, а самостоятельными классами, для более правильного дизайна.
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0232 ]   [ 18 queries used ]   [ Generated: 29.03.24, 00:32 GMT ]