|
Модератор
|
|
RAD 2009-XE2 Кнопка с подсветкой в нажатом состоянии16.09.2022, 13:38. Показов 1193. Ответов 17
Привет всем!
В программе есть несколько кнопок (Tbutton) у которых меняется состояние отображаемое разным текстом, например, нажимаем на кнопку "Пуск" текст меняется на "Стоп" и наоборот, в программе, думаю понятно, есть логические переменные отслеживающие состояние и функции меняющие текст. Заказчик захотел что бы такие кнопки подсвечивались в одном из логических состояний (в примере выше, когда написано "Стоп"), так же, как если на кнопку наведён указатель мыши. Дело усложняется тем, что в программе используются темы delphi (vcl.themes), так что текст заранее нарисованными картинками (.bmp) не заменить, пришлось бы для всех тем отдельные картинки с разными цветами делать. Да и менять тексты в Caption на всех кнопках на картинки не хочется. И, многоязыковый интерфейс к тому же. На какие кнопки бы заменить TButton-ы, что бы можно было организовать такую подстановку цвета? p.s.Цвета из темы я знаю, откуда брать, из TStyleManager.ActiveStyle.GetStyleColor( scButtonHot{например}). p.p.s. Delphi XE2. p.p.p.s. Я понимаю что подсвечивать выбранной состояние так же, как и подсветку под указателем не очень хорошо, но это не моя хотелка.
0
|
|
| 16.09.2022, 13:38 | |
|
Ответы с готовыми решениями:
17
Div:active кнопка не фиксируется в нажатом состоянии
При нажатом checkBox из EditText содержимое попадает в первый лист, при не нажатом во второй |
|
Злостный нарушитель
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,511
|
|
| 16.09.2022, 14:32 | |
|
Есть TSpeedButton со свойством Down. Но это потомок от TGraphicControl, поэтому он не может иметь фокус.
0
|
|
|
Модератор
|
||
| 16.09.2022, 14:59 [ТС] | ||
|
Наличие состояния нажатия не так важно, его и вне компонента можно хранить. Изменение раскраски то от состояния как менять? Может что то из jvcl использовать? Оно уже и так задействовано в проекте.
0
|
||
|
Злостный нарушитель
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,511
|
|||
| 16.09.2022, 15:03 | |||
|
0
|
|||
|
Злостный нарушитель
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,511
|
|
| 16.09.2022, 15:12 | |
|
0
|
|
|
Модератор
|
||
| 16.09.2022, 15:14 [ТС] | ||
|
Добавлено через 1 минуту Verevkin, что это за весёлые картинки? Отрисовка не та что мной описана, и что толку от картинок без кода.
0
|
||
|
Злостный нарушитель
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,511
|
|
| 16.09.2022, 15:15 | |
|
0
|
|
|
Злостный нарушитель
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,511
|
|||
| 16.09.2022, 15:20 | |||
|
-------- И скажи своему заказчику, что не всё, что он хочет, возможно. Решение может существовать, но его применение может занять неоправданно много времени. У меня тут полно борзых заказчиков, которые много чо хотят просто "щоб було". Приходится периодически их в пешие эротические круизы отправлять. Я серьёзно.
0
|
|||
|
Модератор
|
|||
| 16.09.2022, 15:29 [ТС] | |||
|
Возможно, например, если кнопку самому соорудить из TButtonControl, а то и из TWinControl, но не хочется городить велосипед, может кто подскажет.
0
|
|||
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|||
| 16.09.2022, 15:44 | |||
|
Добавлено через 2 минуты
1
|
|||
|
Модератор
|
||
| 16.09.2022, 16:32 [ТС] | ||
|
При наведении на неё указателя мыши цвета меняются согласно выбранной теме. Если нажать на кнопку, то состояние программы изменится, текст на кнопке станет "Стоп", но при удалении указателя мыши с кнопки цвета стали бы как на самой верхней картинке. А нужно что бы расцветка осталась такой как если бы на ней был указатель, вот такой для данной темы: Кнопка не должна получать фокус.
0
|
||
|
|
|
| 16.09.2022, 16:40 | |
|
TImage + 3 обработчика
OnClick OnMouseEnter OnMouseLeave и примерно 10 строк кода, который меняет картинку на "кнопке" если же хочется по-взрослому, чтобы еще и цвет брался из VCL-темы, то думаю стоит новую тему открыть - как получать цвета из VCL-темы
0
|
|
|
Злостный нарушитель
10302 / 5725 / 1268
Регистрация: 12.03.2015
Сообщений: 26,511
|
||
| 16.09.2022, 16:58 | ||
![]() Я задолбался вытаскивать оттуда отрисовку TProgressBar. Пришлось только для этого написать отдельное приложение!
0
|
||
|
Модератор
|
|||
| 16.09.2022, 17:01 [ТС] | |||
|
Там больше чем 10 строк будет. А с учётом того, что кнопок несколько, нужно делать свой компонент. Новую тему "Как сделать компонент" открывать не хочу, делал, но, само по себе это как бы намекает что может быть готовое решение.
0
|
|||
|
453 / 177 / 31
Регистрация: 04.08.2018
Сообщений: 717
|
|
| 17.09.2022, 10:57 | |
|
В качестве снаряда специальной олимпиады, если отправить кнопке сообщение, которое автоматически отправляется при появлении мышки над кнопкой (WM_MOUSEHOVER)? Кнопка сменит состояние? Можно ли такое сообщение отправить нескольким кнопкам одной формы? Будут ли они все одновременно в состоянии "мышка над кнопкой"?
0
|
|
|
Модератор
|
|
| 17.09.2022, 11:47 [ТС] | |
|
Rayvenor, решение разве что для "специальной олимпиады", хотите, проверьте.
0
|
|
| 17.09.2022, 11:47 | |
|
Помогаю со студенческими работами здесь
18
WI-FI постоянно в состоянии "откл", кнопка включения не активна Можно ли заменить матрицу TN с CCFL-подсветкой на матрицу AFFS с LED-подсветкой? передача изображения при нажатом Win+L Прибавление стоимости при нажатом checkbox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|