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

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

13.08.2014, 18:14. Показов 5379. Ответов 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
Ответ Создать тему
Новые блоги и статьи
28. КОнкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru