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

델파이 Q&A
Delphi Programming Q&A
[11721] Re:ActionList에서 ... ActionList를 호출한 버튼 알아내려면?
주정섭 [jjsverylong] 1476 읽음    2008-01-30 14:34
질문자가 하나의 액션리스트를 여러 버튼에 연결했다는 식으로 질문하는 바람에,  답변자들도 엉뚱한 답을 단거 같은데. 액션리스트는 버튼에 연결할 수 없습니다. 액션을 버튼에 연결하는 것이겠지요.

질문의 핵심내용은 하나의 액션을 여러 버튼에  연결했을때, 어떤 버튼을 눌러서 그 액션이 실행됬는지를 알고 싶다는 것이었습니다. 

여기서 중요한 것은 어떤 액션인지가 아니라 "어떤 버튼"을 눌러서 액션이 실행되었냐 하는 것입니다. 액션은 하나 뿐이므로 굳이 알고 싶은 대상이 아닙니다.

이경우 정답은 TAction의 ActionComponent 속성을 사용하는 것입니다.  즉 다음과 같이 OnExecute 이벤트를 작성하면 됩니다.

var
  btn : TButton;
begin
  Assert(TAction(Sender).ActionComponent is TButton);

   btn := TButton( TAction(Sender).ActionComponent);

  if btn = button1 then
     ....
  else btn = butotn2
     ....

end;

결론인즉 Action의 ActionComponent는 그 액션을 실행하게한 대상, 즉 버튼이든 메뉴 등을 가리킵니다.


linuxman 님이 쓰신 글 :
: 화면에 ... 100여기의 버튼을 만들어 놓고...
: 그리고 ActionLister를 하나 만들었습니다...
: 이 100개의 버튼에 ... 위에서 만든 actionLister를 연결했습니다 (ObjectInspector 에서 )
:
: 이 actionList 에서는 ... 100여개의 버튼중에 ... 어떤 버튼에서 눌렸는지 알아낼수 있는 방법이 필요한데..
: 어떤 버튼에서 눌려서 왔는지 알아낼수 방법이 어떤 것이 있는지요?
:
: 각각의 버튼에 Tag 속성에 서로 다른 값을 주고... 그값을 알아내는 방버은 가능한지요?
:
:
:
: ===
:  TForm1::Action1Execute(Sender ; TObject)
: {
:      // 어떤 버튼에서 왔는지 알아낼수 있는 방법을 알고 싶습니다..?
:
:
: }
: //---------------------------------------------------------------------------
:
:
:
: 수고하세요.

+ -

관련 글 리스트
11716 ActionList에서 ... ActionList를 호출한 버튼 알아내려면? linuxman 1421 2008/01/26
11721     Re:ActionList에서 ... ActionList를 호출한 버튼 알아내려면? 주정섭 1476 2008/01/30
11718     Re:ActionList에서 ... ActionList를 호출한 버튼 알아내려면? biosoft 1908 2008/01/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.