|
^^ 기분이 좀 상하셨다면 제가 미안합니다.
님이 밀씀하시는 건 이미 제가 쓴 A 함수이였기 때문에
저는 이걸로 제 질문이 답변이 된걸로 다른 분들이 착각해서
또 다른 답변이 안 올라 올까봐서 그런겁니다.
오해는 없으시길 바랍니다.
감사합니다.끝.
한꼬맹이 님이 쓰신 글 :
: 방태윤 님이 쓰신 글 :
: : 말씀 감사합니다.
: :
: : 말씀하신것중에
: :
: : : void __fastcall B_func(TObject *Sender) 일반 함수를 클래스 멤버함수로 바꾸어 주시면
: :
: : 이건 A함수를 말씀하시는거지요? A함수는 잘 됩니다.
: :
: : B 함수를 이용하려면 어떤 방법은 있을까요???.
: :
: : 감사합니다.끝.
: :
: :
: : 한꼬맹이 님이 쓰신 글 :
: : : 방태윤 님이 쓰신 글 :
: : : : 동적으로 버튼을 생성하는 방법을 알고 싶습니다.
: : : :
: : : : 새로운 폼 Form1 을 생성했다고 하고
: : : :
: : : : TForm1 *Form1;
: : : :
: : : : __fastcall TForm1::TForm1(TComponent* Owner)
: : : : : TForm(Owner)
: : : : {
: : : : }
: : : :
: : : : void make_button();
: : : :
: : : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : : {
: : : : make_button();
: : : : }
: : : :
: : : :
: : : : Tbutton *a;
: : : :
: : : : void __fastcall TForm1::A_func(TObject *Sender)
: : : : {
: : : : ShowMessage("A")
: : : : }
: : : : void __fastcall B_func(TObject *Sender)
: : : : {
: : : : ShowMessage("B")
: : : : }
: : : :
: : : : void make_button()
: : : : {
: : : : a=new TButton(Form1);
: : : :
: : : : a->Top=10;
: : : : a->Left=10;
: : : : a->Width=100;
: : : : a->Height=20;
: : : : a->Visible=true;
: : : : a->Parent=Form1;
: : : : a->Caption="test";
: : : : **********************
: : : : a->OnClick=A_func;
: : : : or
: : : : a->OnClick=B_func;
: : : :
: : : : 음 여기서 부터 막히는군요..
: : : : A_func 는 되는데 B_func 은 안되는군요.
: : : : 근데 제가 사용하고자 하는 건
: : : : a->OnClick=B_func; 인데 컴파일 에러입니다.
: : : : 영원히 안되는게 당연한건지 잘 모르지만
: : : : B 형태로 사용할려면 어떻게 해야 되는지
: : : : 고수님들의 한수 지도 부탁합니다.
: : : :
: : : : }
: : : :
: : : : 감사합니다...끝.
: : : :
: : :
: : : 안녕하십니까?
: : :
: : : 한꼬맹이 입니다.
: : :
: : : 1. a->OnClick=A_func;
: : : 2. a->OnClick=B_func;
: : :
: : : 1번은 되는데.. 2번이 왜 안돼냐하면 버턴의 OnClick이벤트는 TNotifyEvent형으로 선언되어
: : :
: : : 있기 때문입니다. 즉 4바이트짜리 두개 짜리 포인트가 대입되어야 제대로 돌아갑니다.
: : :
: : : 빌더에서 일반함수의 주소는 4바이트짜리 주소하나로 표현되지만 클래스내의 멤버함수는
: : :
: : : 4바이트짜리 두개의 주소로 표현됩니다. 그래서 2.번의 경우 제대로 돌아가지 않는 겁니다.
: : :
: : : void __fastcall B_func(TObject *Sender) 일반 함수를 클래스 멤버함수로 바꾸어 주시면
: : :
: : : 아무문제 없이 잘 돌 아 갈겁니다.
: : :
: : : 그럼 참고하세요
: : :
: : :
:
: 안녕하십니까?
:
: 한꼬맹이 입니다.
:
: 당연히 B함수가 안된다고 해서 B함수를 고치라구 했는데..
:
: 왠 동문서답을 하시나요? 쩝 ~^_^;;
:
: void __fastcall B_func(TObject *Sender) 이놈을
:
: ====> void __fastcall TForm1::B_func(TObject *Sender) 이렇게 고치시면 되는데....
:
: 그기다가 TForm1클래스에다가 함수 선언도 같이 해주시구요....
:
: 또 동문서답 하지 않으시기를....
:
|