|
RoomListClick 함수를 임의로 호출하려고 했는데, 파라미터 때문에 고민하고 계시군요.
일반적으로는 그냥 this를 넣어주시면 됩니다.
NULL을 넣으셔도 되고요.
RoomListClick(this);
RoomListClick(NULL);
RoomListClick 함수 내부에서 Sender를 처리하지 않으면 실제로는 의미 없는 값이기 때문이죠.
VCL 내부에서 호출할 때 어느 컴퍼넌트에서 호출되었는지 전달이 되기 때문에 Sender값이 존재하는 것입니다.
비슷한 역할을 하는 버튼이 수십개 있을 때, 버튼 클릭 이벤트를 만들어야 할 경우,
수십개의 버튼의 각각 클릭 이벤트를 모두 만들면 빡시겠죠?
이런 경우에 버튼 클릭 이벤트를 하나 만들어 놓고, Sender에 ClassName 을 읽어서
버튼을 구별해서 처리하면 매우 편해지겠죠~
Sender->ClassName();
값을 한번 화면에 찍어보세요~
B-Fron 님이 쓰신 글 :
: 검색해보니 "TObject *Sender는 이벤트를 발생시킨 VCL 객체를 넘겨주는 객체 포인터입니다."
:
: 라는 말이 있는데.. C++를 배우고 있는 저로써는 아직은 조금 이해하기 어렵네요 -_-;
:
:
:
: 프로그램 시작과 동시에 StringGrid의 어떤 행을 클릭 했을때의 효과를 주고 싶어서
:
: 클래스 생성자에 RoomListClick함수(RoomList는 StringGrid 객체 이름)를 실행하도록 하고 싶어서 보니
:
:
: void __fastcall TRoomManage::RoomListClick(TObject *Sender)
:
:
: 라고 나와서 매개변수를 대체 뭘로 넘겨줘야 할까....-_-; 하는 의문점이 들더군요
:
: 폼 안에 있는 아무 객체의 이름을 쓰니 제가 원하던 결과가 나오긴 했는데.. 어떤 구조로 실행되는건지 궁금합니다
|