Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Mr_Twain
1 / 1 / 0
Регистрация: 21.02.2016
Сообщений: 63

Непонятные баги с Button

04.03.2017, 13:54. Показов 1261. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всегда интересовало это. Почему при запуске программы Caption в одной из кнопок выделяется рамкой? Можно ли как-то это убрать?
Это бывает и при стандартных стилях программы, и при использовании AlphaControls. При работе с Альфа кнопка вообще отображается так, как при наведении на неё. Пример на скрине. Должна быть белой, при наведении становится синей. А у меня всё не так. Запускаю программу, одна из кнопок уже синяя и с рамкой на тексте.
Как это исправить?
Миниатюры
Непонятные баги с Button  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2017, 13:54
Ответы с готовыми решениями:

Непонятные баги в Windows XP
Доброго времени суток! Даже не знаю с чего начать. Последнее время с ноутбуком началась какая-то беда. Ноутбук -Toshiba Satellite Pro...

Непонятные баги с звуковой картой IDT Audio
Доброго всем времени суток! У меня такая проблемма, купил я себе нетбук HP Compaq Mini cq10-100SR, на нем стоит звуковуха IDT Audio...

Если Button 1 и Button 2 нажаты - Button 3 стала активной, как?
Проверка если Button 1 и Button 2 нажаты - Button 3 стала активной Причем нужно чтобы это срабатывало только после того как вторая...

8
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
04.03.2017, 14:39
Лучший ответ Сообщение было отмечено Mr_Twain как решение

Решение

C++
1
ShowFocus=false;
И это не баг.
1
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
04.03.2017, 15:06
К тому же фокус при старте можно повесить на любой контрол на Ваш выбор.
0
 Аватар для Mr_Twain
1 / 1 / 0
Регистрация: 21.02.2016
Сообщений: 63
04.03.2017, 17:37  [ТС]
Я так понимаю, это свойство Button->TabStop? Что-то не могу найти нигде этот ShowFocus.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
04.03.2017, 17:54
Это именно для альфа компонентов
1
 Аватар для Mr_Twain
1 / 1 / 0
Регистрация: 21.02.2016
Сообщений: 63
04.03.2017, 18:13  [ТС]
А, понял, спасибо. А для стандартных компонентов есть такое свойство? Потому что эту "рамку" вижу и на стандартных Button'ах, без использования стилей.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
04.03.2017, 18:20
Как убрать выделение у кнопки? не tabstop
(в Билдере все абсолютно так же)

Ну, или
C++
1
2
3
4
void __fastcall TForm1::FormActivate(TObject *Sender)
{
    ActiveControl = 0;
}
, чтобы не выставлять фокус ни на каком контроле, тогда фокусная рамка в принципе не сможет появиться
1
 Аватар для Mr_Twain
1 / 1 / 0
Регистрация: 21.02.2016
Сообщений: 63
04.03.2017, 18:59  [ТС]
ActiveControl=0; не принесло результата
Рамка почему-то осталась. Сделал всё, как вы показали. Прописал эту строку в событии OnActivate.
Сейчас попробую вариант по ссылке.

Добавлено через 11 минут
В общем, я так понял, проще будет использовать кнопки с AlphaControls и не парить себе мозг
С ShowFocus=false всё намного проще.

Хотя, было бы интересно всё же узнать, как убрать это на стандартном Button.
Спасибо всем за помощь.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.03.2017, 22:27
Лучший ответ Сообщение было отмечено Mr_Twain как решение

Решение

Цитата Сообщение от Mr_Twain Посмотреть сообщение
Можно ли как-то это убрать?
Цитата Сообщение от Mr_Twain Посмотреть сообщение
Как это исправить?
Достаточно сделать перенос фокуса с кнопки на нейтральный контрол (можно - фантомный) в двух событиях__
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Button1MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    CheckBox1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if(Button1->Focused()) CheckBox1->SetFocus();
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2017, 22:27
Помогаю со студенческими работами здесь

Как добавить кнопки (if (GUI.Button(new Rect(x1, y1, dx, dy), ii.name) в список List<Button>?
Хочу все кнопки добавить в список и выводить на экран из списка. void OnGUI() { if (window == &quot;main&quot;) ...

Как в Android положить один объект (button) на другой (button)?
Скажите, как можно положить один объект на другой, так что бы они оба были кликабельными? У менять есть две кнопки примыкающие друг к...

Создание button без заднего фона, и подключение коротких звуков при нажатии button
Т.к. я только начинающий юзер C#, хотел бы спросить, если кто сможет подсказать, как убрать задний фон на баттоне, что б он вливался в фон...

При нажатии на Button каждый раз создается новый компонент (button/label/textbox)
Как реализовать?

Radio Button (option button) в html документе, открытом в IE
Как &quot;нажать&quot; (не знаю какое событие должно произойти или какое свойство нужно установит в true) rButton при работе с html документом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru