С++ и кнопки. Help !!!

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by pampej, 5 Oct 2009.

  1. pampej

    pampej Member

    Joined:
    29 Jul 2009
    Messages:
    0
    Likes Received:
    26
    Reputations:
    5
    Собственно вопрос вот в чем.
    Как залить цветом кнопку.В языке С++.
    Т.Е. надо сделать так ,чтобы при наведении курсора на кнопку она меняла цвет .
    Среда разработки C++Builder 5
    За ранее спасибо !!!
     
    #1 pampej, 5 Oct 2009
    Last edited: 5 Oct 2009
    5 people like this.
  2. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    В классе TButton изменить цвет нельзя. Для этого нужно использовать свой класс.
     
  3. pampej

    pampej Member

    Joined:
    29 Jul 2009
    Messages:
    0
    Likes Received:
    26
    Reputations:
    5
    Создавать свой класс трудновато.
     
  4. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    Ничего трудного. Используй стандартные классы и возможности ООП =)
     
  5. CroCop

    CroCop New Member

    Joined:
    27 Sep 2009
    Messages:
    25
    Likes Received:
    4
    Reputations:
    0
    Согласен с предыдущим комментом,но есть предложение попроще.
    Мало работал в данной среде,но если мне не изменяет память,то стоит нарисовать какой-нибудь фон и использовать SpeesButton или BitBtn.
     
  6. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    Используй TLabel, там можно менять цвет фона и шрифта.
     
  7. pampej

    pampej Member

    Joined:
    29 Jul 2009
    Messages:
    0
    Likes Received:
    26
    Reputations:
    5
    Я не знаю правильно или нет ,но я нашел выход вот какой:
    Code:
    //---------------------------------------------------------------------------
    
    #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.
    Кто знает более оптимальный вариант ,буду благодарен.