C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[71075] Re:빌더 속성에 대해 질문 하나 드립니다.[버튼 테두리]
빌더초보 [] 3503 읽음    2014-03-19 22:39
비슷한걸로 고민한적이 있는데,

모양이 이쁘진 않지만 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 님이 쓰신 글 :
:
: 안녕하세요
: 빌더 초보가 질문 하나 드립니다.
:
: 첨부 파일을 보시면 아시겠지만..
: 현재 버튼에 포커스가 가면 버튼의 테두리 색이 하늘색으로 변합니다.
:
: 그걸 버튼 선택시, 빨간색으로 변경 시키고 싶은데..
:
: 어디서 변경을 해야되는지 아무리 찾아봐도 잘 모르겠어서요..
:
: 기본속성에서 변경을 시켜야되는 것 같긴한데..
:
: 혹시 아시는 분 계시면 도움 좀 부탁드립니다.
:
: 감사합니다.

+ -

관련 글 리스트
71071 빌더 속성에 대해 질문 하나 드립니다.[버튼 테두리] win 2790 2014/03/19
71075     Re:빌더 속성에 대해 질문 하나 드립니다.[버튼 테두리] 빌더초보 3503 2014/03/19
71078         Re:Re:빌더 속성에 대해 질문 하나 드립니다.[버튼 테두리] win 2858 2014/03/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.