Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21

Изменить цвет надписи на заблокированной TBitButton

13.08.2014, 18:14. Показов 5567. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
Form1->Color = RGB (245, 51, 164);//Цвет формы
}
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
BitBtn1->Font->Color = RGB (0, 255, 0);//Шрифт не блокированной кнопки
ShellExecute(0, L"open", L"cmd.exe", 0, 0, SW_SHOWNORMAL);
BitBtn1->Enabled = false;
BitBtn1->Font->Color = RGB (255, 0, 0);//Шрифт блокированной кнопки
}





C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Buttons.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TBitBtn *BitBtn1;
    void __fastcall BitBtn1Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif




Создан новый проект для пробы
Цвет Формы
Цвет самой кнопки BitBtn
Цвет шрифта BitBtn
Что не правильно делаю ?

Добавлено через 9 минут
Цвет не меняется после нажатия

Добавлено через 1 минуту
Разблокированная кнопка цвет шрифта:Зеленый
Заблокированная кнопка шрифта:Красный

Добавлено через 4 минуты
Цвет шрифта блокированный кнопки:Серый
А нужно чтобы был красный шрифт
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.08.2014, 18:14
Ответы с готовыми решениями:

как взять надписи в каробочки ? и изменить им цвет
&lt;div id=menu&gt; &lt;font size=&quot;+2&quot;&gt; &lt;p align=&quot;center&quot;&gt;&lt;a...

Как изменить цвет фона надписи по событию?
Access 2016 Как сделать чтобы при смене значения &quot;Флажка&quot;(True/False) менялся цвет фона надписи? В данном случае надпись...

По нажатию на кнопку (Button) изменить цвет надписи (Label)
Здравствуйте. Начал работать с оконными приложениями, кто-нибудь объясните как их писать? На примере одной из задач: 1. Реализовать...

45
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.08.2014, 16:44
Студворк — интернет-сервис помощи студентам
а если загружать изображения заблокированой кнопки / разблокированой ?
глупо, но при этом даже на древних системах с классическим интерфейсом будет смотреться красивее...
Или затемнять "шторкой" кнопку ....
Велосипед конечно, но как альтернативные варианты...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2014, 17:13
Цитата Сообщение от Deiemamancommen Посмотреть сообщение
Как этот компонент устанавливаеться ?
Если никогда сторонние компоненты не устанавливал, то можешь по другому (нагрузка на пальцы и клавиатуру...) - добавить к проекту паскалевский файл ButtonWithColor.pas, отдельно его скомпилировать (получишь ButtonWithColor.hpp), и затем руками прописать след. действия (пример с указанием цвета шрифта; кнопка на базе обычной BitBtn1, созданной в дизайн-режиме и объявленной невидимкой):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
///  #include "ButtonWithColor.hpp"
      TBitBtnWithColor *butn;
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
     butn = new TBitBtnWithColor(this);
     butn->Parent = Form1;
     butn->Top = BitBtn1->Top ;
     butn->Left = BitBtn1->Left ;
     butn->Width = BitBtn1->Width ;
     butn->Height = BitBtn1->Height ;
     butn->Caption = BitBtn1->Caption ;
     butn->Font->Color = clRed;
     . . .
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21
14.08.2014, 17:23  [ТС]
У меня нет Паскаля
И с паскалем не связывался вообще!

Добавлено через 1 минуту
И что делать,на чем компилировать файл паскаля ?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2014, 17:27
.. у меня его тоже нет! Добавить к проекту слабо? Открыть в редакторе и затем нажать пункт Project - Compile Unit тоже? ...
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21
14.08.2014, 17:33  [ТС]
В C++ Builder XE6 нет такого пункта Project - Compile Unit

Добавлено через 57 секунд
Если найду как добавить
Шрифт цветной будет работать как надо ?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2014, 17:36
Должен! Я за всякие ХЕ не в ответе; старожилы форума знают: я до сих пор работаю с BCB 5 и всякие подколки со стороны модераторов стараюсь не замечать... .
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21
14.08.2014, 17:38  [ТС]
Вот где искать ?
Миниатюры
Изменить цвет надписи на заблокированной TBitButton  
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21
14.08.2014, 17:42  [ТС]
Скиньте исходник ButtonWithColor.hpp
Я его сам вручную подключу!
P.S
Так проще будет чем через интерфейс искать
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2014, 17:46
И примерчик на всякий случай.
Вложения
Тип файла: rar Project1.rar (153.6 Кб, 5 просмотров)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2014, 17:47
Пожалуйста...
Вложения
Тип файла: rar 47.RAR (27.1 Кб, 4 просмотров)
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21
14.08.2014, 17:56  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Buttons.hpp>
#include <ButtonWithColor.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TBitBtn *BitBtn1;
    void __fastcall BitBtn1Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Добавлено через 41 секунду
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
ShellExecute(0, L"open", L"cmd.exe", 0, 0, SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
Добавлено через 15 секунд
Checking project dependencies...
Compiling Project1.cbproj (Debug, Win32)
bcc32 command line for "Unit1.cpp"
c:\program files (x86)\embarcadero\studio\14.0\bin\bcc32. exe -D_DEBUG -DUSEPACKAGES -n.\Win32\Debug -I"c:\program files
(x86)\embarcadero\studio\14.0\include\wi ndows\vcl";"C:\Program Files (x86)\Embarcadero\Studio\14.0\include\bo ost_1_39\boost\tr1\tr1";"C:\Program
Files (x86)\Embarcadero\Studio\14.0\include\bo ost_1_39";"c:\program files (x86)\embarcadero\studio\14.0\include";" c:\program files
(x86)\embarcadero\studio\14.0\include\di nkumware";"c:\program files (x86)\embarcadero\studio\14.0\include\wi ndows\crtl";"c:\program files
(x86)\embarcadero\studio\14.0\include\wi ndows\sdk";"c:\program files (x86)\embarcadero\studio\14.0\include\wi ndows\rtl";"c:\program files
(x86)\embarcadero\studio\14.0\include\wi ndows\vcl";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win32" -y -Q -k -r- -c -tR -tM -tU -tW -C8
-o.\Win32\Debug\Unit1.obj -w-par -Od -v -vi- -H=.\Win32\Debug\Project1.pch -H Unit1.cpp
[bcc32 Error] Unit1.h(11): E2209 Unable to open include file 'ButtonWithColor.hpp'
Full parser context
Unit1.cpp(6): #include Unit1.h
Failed
Elapsed time: 00:00:00.1
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2014, 18:00
такие файлы нужно в кавычках подавать, а не в угловых скобках:
#include "ButtonWithColor.hpp"
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21
14.08.2014, 18:04  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Buttons.hpp>
#include "ButtonWithColor.hpp"
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TBitBtn *BitBtn1;
    void __fastcall BitBtn1Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Checking project dependencies...
Compiling Project1.cbproj (Debug, Win32)
bcc32 command line for "Unit1.cpp"
c:\program files (x86)\embarcadero\studio\14.0\bin\bcc32. exe -D_DEBUG -DUSEPACKAGES -n.\Win32\Debug -I"c:\program files
(x86)\embarcadero\studio\14.0\include\wi ndows\vcl";"C:\Program Files (x86)\Embarcadero\Studio\14.0\include\bo ost_1_39\boost\tr1\tr1";"C:\Program
Files (x86)\Embarcadero\Studio\14.0\include\bo ost_1_39";"c:\program files (x86)\embarcadero\studio\14.0\include";" c:\program files
(x86)\embarcadero\studio\14.0\include\di nkumware";"c:\program files (x86)\embarcadero\studio\14.0\include\wi ndows\crtl";"c:\program files
(x86)\embarcadero\studio\14.0\include\wi ndows\sdk";"c:\program files (x86)\embarcadero\studio\14.0\include\wi ndows\rtl";"c:\program files
(x86)\embarcadero\studio\14.0\include\wi ndows\vcl";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win32" -y -Q -k -r- -c -tR -tM -tU -tW -C8
-o.\Win32\Debug\Unit1.obj -w-par -Od -v -vi- -H=.\Win32\Debug\Project1.pch -H Unit1.cpp
[bcc32 Error] ButtonWithColor.hpp(129): E2316 'TRect' is not a member of 'Windows'
Full parser context
Unit1.cpp(6): #include Unit1.h
Unit1.h(11): #include ButtonWithColor.hpp
ButtonWithColor.hpp(28): namespace Buttonwithcolor
[bcc32 Error] ButtonWithColor.hpp(129): E2040 Declaration terminated incorrectly
Full parser context
Unit1.cpp(6): #include Unit1.h
Unit1.h(11): #include ButtonWithColor.hpp
ButtonWithColor.hpp(28): namespace Buttonwithcolor
Failed
Elapsed time: 00:00:01.8

Добавлено через 31 секунду
Оба варианта пробовал на новом проекте
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2014, 18:07
... оставьте эту идею (имею в виду предложенный компонент)
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 21
14.08.2014, 18:18  [ТС]
Больше никак нельзя реализовать ?
Цветной шрифт блокированной кнопки
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.08.2014, 08:24
Можно еще попробовать модифицировать поведение TButton с помощью класса-перехватчика, раз так зудит. Но не раньше следующей недели прикольнусь, если UI не опередит...
0
15.08.2014, 08:55

Не по теме:

Цитата Сообщение от BRcr Посмотреть сообщение
Можно еще попробовать модифицировать поведение TButton с помощью класса-перехватчика
BRcr, о чем Вы говорите в этой теме...

0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
15.08.2014, 09:45
Цитата Сообщение от Deiemamancommen Посмотреть сообщение
Больше никак нельзя реализовать ?
Цветной шрифт блокированной кнопки
Конечно можно! Видится - как вариант - вместо Caption кнопки использовать Label с прозрачностью (Label1->Parent=BitBtn1;); для имитации нажатий - на MouseDown +1 к Label->Top и Label->Left (на MouseUp соотв. -1). Правда, нажатия на Label и кнопку будут различаться внешне. Вообще, можно собственный компонент создать на базе BitBtn (если стратеги Эмбаркадеро уже не подсуетились), чтоб уж совсем красиво было (и удобно).
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
15.08.2014, 10:11
Цитата Сообщение от BRcr Посмотреть сообщение
Можно еще попробовать модифицировать поведение TButton с помощью класса-перехватчика, раз так зудит. Но не раньше следующей недели прикольнусь, если UI не опередит.
Да дудочки. И UI не опережает потому, что изменить цвет текста активной кнопки классом-перехватчиком можно очень легко, а вот наоборот для неактивной это надо очень и очень глубоко влезть в понимание механизма изменения Enabled компонента. И перехватить его.

Цитата Сообщение от nick42 Посмотреть сообщение
вместо Caption кнопки использовать Label
С икспишным манифестом, со стилем круглых кнопок уже ведь не проканает. Нельзя поверх кнопки разместить лейбл.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
15.08.2014, 10:23
Цитата Сообщение от SatanaXIII Посмотреть сообщение
не проканает. Нельзя поверх кнопки разместить лейбл.
Ну, так речь идет о BitBtn же... .
Вложения
Тип файла: rar 48.RAR (163.2 Кб, 5 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.08.2014, 10:23

Как изменить курсор у заблокированной формы?
Из-за того, что я блокирую форму (Shadow.Enabled := False) у меня когда курсор мыши находится над этой формой не отображается курсор,...

Как менять цвет фона и цвет надписи кнопки?
Есть кнопка, хочу произвольно менять цвет фона и цвет надписи(в зависимости от цвета кнопки). Если прописать...

Сменить цвет надписи...
Помогите пожалуйста!:( Задание: Сменить цвет надписи, чередуя цвета(синий, красный, белый), через 2 секунды времени(не используя...

Заменить цвет надписи в Делфи
Есть желто-синяя форма, цвета расположены горизонтально, половина синяя, половина желтая. На форме метка с красной надписью. Половина...

Переключение изменяя цвет надписи
Предположим есть несколько ссылок, при на ведении на них они выделяются оранжевым цветом, а как сделать так чтобы, например, если кликнуть...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru