답변 감사합니다.
===================================
빌더초보 님이 쓰신 글 :
: 비슷한걸로 고민한적이 있는데,
:
: 모양이 이쁘진 않지만 TPanel 로 대체하는것도 한 방법입니다.
:
: TPanel 의 BevelOuter 속성을 건드리면 눌린 버튼, 안눌린 버튼 모양을 구현할 수가 있고요,
:
: Color 속성도 있기때문에 색도 마음대로 바꿀수가 있습니다.
: (ParentBackground 를 false 로 변경해야만 색이 바뀝니다)
:
: 아래는 OnMouseEnter, OnClick, OnMouseLeave 이벤트를 땨로 정의하고,
:
: Button1 OnClick 함수에서
: 동적으로 생성한 Panel에 각 이벤틀 넣어준 내용입니다.
:
: 어떤 버튼이 눌렸는지 안눌렸는지에 대한 검사는 Caption 이나 Tag 로 파악하시면 될것같습니다.
:
: 어떤 용도로 사용하실지 모르기 때문에 이 정도만 적겠습니다.
:
:
:
:
:
: //---------------------------------------------------------------------------
: void __fastcall TForm1::MyPanelOnMouseEnter(TObject *Sender)
: {
: if (((TPanel*)Sender)->BevelOuter==bvRaised) {
: ((TPanel*)Sender)->Color=clHighlight;
: }else {
: ((TPanel*)Sender)->Color=clFuchsia;
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::MyPanelOnMouseClick(TObject *Sender)
: {
: if (((TPanel*)Sender)->BevelOuter==bvRaised) {
: ((TPanel*)Sender)->BevelOuter=bvLowered;
: ((TPanel*)Sender)->Color=clFuchsia;
: }else {
: ((TPanel*)Sender)->BevelOuter=bvRaised;
: ((TPanel*)Sender)->Color=clHighlight;
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::MyPanelOnMouseLeave(TObject *Sender)
: {
: if (((TPanel*)Sender)->BevelOuter==bvRaised) {
: ((TPanel*)Sender)->Color=clBtnFace;
: }else {
: ((TPanel*)Sender)->Color=clRed;
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: TPanel *A = new TPanel(Application);
: A->BevelWidth=3;
: A->Parent=this;
: A->ParentBackground=false;
: A->OnMouseEnter=MyPanelOnMouseEnter;
: A->OnClick=MyPanelOnMouseClick;
: A->OnMouseLeave=MyPanelOnMouseLeave;
: }
: //---------------------------------------------------------------------------
:
:
:
: win 님이 쓰신 글 :
: :
: : 안녕하세요
: : 빌더 초보가 질문 하나 드립니다.
: :
: : 첨부 파일을 보시면 아시겠지만..
: : 현재 버튼에 포커스가 가면 버튼의 테두리 색이 하늘색으로 변합니다.
: :
: : 그걸 버튼 선택시, 빨간색으로 변경 시키고 싶은데..
: :
: : 어디서 변경을 해야되는지 아무리 찾아봐도 잘 모르겠어서요..
: :
: : 기본속성에서 변경을 시켜야되는 것 같긴한데..
: :
: : 혹시 아시는 분 계시면 도움 좀 부탁드립니다.
: :
: : 감사합니다.
|