Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   С++ и кнопки. Help !!! (https://forum.antichat.xyz/showthread.php?t=145802)

pampej 05.10.2009 04:39

С++ и кнопки. Help !!!
 
Собственно вопрос вот в чем.
Как залить цветом кнопку.В языке С++.
Т.Е. надо сделать так ,чтобы при наведении курсора на кнопку она меняла цвет .
Среда разработки C++Builder 5
За ранее спасибо !!!

M_script_ 05.10.2009 08:11

В классе TButton изменить цвет нельзя. Для этого нужно использовать свой класс.

pampej 05.10.2009 16:44

Создавать свой класс трудновато.

M_script_ 05.10.2009 20:29

Цитата:

Сообщение от pampej
Создавать свой класс трудновато.

Ничего трудного. Используй стандартные классы и возможности ООП =)

CroCop 05.10.2009 20:39

Согласен с предыдущим комментом,но есть предложение попроще.
Мало работал в данной среде,но если мне не изменяет память,то стоит нарисовать какой-нибудь фон и использовать SpeesButton или BitBtn.

M_script_ 06.10.2009 11:44

Используй TLabel, там можно менять цвет фона и шрифта.

pampej 06.10.2009 13:57

Я не знаю правильно или нет ,но я нашел выход вот какой:
Код:

//---------------------------------------------------------------------------

#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::Panel1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
Form1->Panel1->BevelInner= bvLowered ;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Panel1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
Form1->Panel1->BevelInner=bvSpace ;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Panel1Click(TObject *Sender)
{
if (Panel1->Color==clBlue)
Panel1->Color=clRed ;
else Panel1->Color=clBlue ;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Panel2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
Panel2->BevelInner=bvLowered ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
Panel2->BevelInner=bvSpace ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
if((X>1)&&(X<Panel2->Width-1)&&(Y>1)&&(Y<Panel2->Height-1))
Panel2->Color=clRed ;
else
Panel2->Color=clBlue ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2Exit(TObject *Sender)
{
Panel2->Color=clBlue ;
}
//---------------------------------------------------------------------------

Использовал Panel.
Кто знает более оптимальный вариант ,буду благодарен.


Время: 19:32