Panel1 에 3개의 스피드 버튼이 있고...
Panel2 에도 3개의 스피드 버튼이 있다고 할 때...
6개 스피드 버튼의 'GroupIndex' 프로퍼티를 전부 '1'로 설정해 놓고 ...
전체 스피드 버튼의 'OnClick' 이벤트를...
SpeedButtonClick 이벤트 핸들러 하나를 공용으로 사용하게 해서...
SpeedButtonClick 이벤트 핸들러에서 아래와 같은 식으로 두개의 Panel 에...
CM_BUTTONPRESSED .. 컴포넌트 메세지를 브로드캐스트 하면 됨...
VCL 프레임웍 구조가 그런 식으로 설계 되어 있음...
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButtonClick(TObject *Sender)
{
TMessage Msg;
Msg.Msg = CM_BUTTONPRESSED;
Msg.WParam = 1;
Msg.LParam = LPARAM(Sender);
Msg.Result = 0;
Panel1->Broadcast(&Msg);
Panel2->Broadcast(&Msg);
}
//---------------------------------------------------------------------------
...
박지훈.임프 님이 쓰신 글 :
: 불가능하진 않아 보이는데 간단하지는 않을 것 같고 배보다 배꼽이 더 클 것 같네요.
: 그다지 큰 기능이 아니니까 Panel 대신 Bevel을 쓴다든지 하는 약간의 꼼수?를 쓰시는 게 어떨지.
:
: Bevel을 쓰게 되면 버튼들의 레이아웃(이동 등)이 좀 귀찮아질텐데... 약간의 꼼수를 더 써서, 두 Bevel과 버튼들을 모두 하나의 패널 위에 올리고, 그 패널의 Border를 안보이게 하면 레이아웃도 깔끔해질 거 같네요.
:
: 저도 꼼수는 안좋아하는데.. 뭐 이건 그럴 공을 들일만한 일이 아닐 것 같아서.. ㅎㅎ
:
:
: 송신영 님이 쓰신 글 :
: :
: :
: : Speed button 을 첨부한 사진 처럼 각각 다른 Panel에 올렸을 경우
: : GroupIndex를 동일하게 하더라도 따로 놀더군요
: : 혹시 다른 Panel에 올려진 Speed Button 도 같은 Group으로
: : 묶을 수 있는 방법이 있나요?
: :
: : RAD Studio 2010
|