|
아... 폼에 TEdit가 여러개 있다는 말씀이신군요....
일반적인 방법으로 폼상에 있는 컴포넌트를 구별하는 방법은 컴포넌트라면 Tag란 프로퍼티가 있습니다.
Tag..말 그대로 꼬리표지요... Tag의 넘버를 가지고 구별하면 각각 구별할 수 있습니다.
Tag를 지정해 두시고, 찾을 때 조건으로 Tag를 확인하시면 원하는 특정 TEdit를 찾으실 수 있습니다.
참고하시길 바랍니다. ^ㅛ^
쩡이 님이 쓰신 글 :
: 폼에 있는 TEdit는 전부 찾아버리는군요.
: 연구를 해봐야겠네요..
: 감사합니다. 즐거운 주말보내세요^^
:
:
: 외랑 님이 쓰신 글 :
: : 이렇게 해보시길 권해봅니다. 참고하세요..
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: : Func->EditPrint(Sender); //함수호출, 버튼 인자를 넘기고
: : }
: :
: : /* 쩡이 님이 테스트 하실려고 한 거겠지요??? 그래서 전 주석처리...
: : void __fastcall TFunc::EditPrint(TObject *Sender)
: : {
: : TButton *pButton= (TButton *) Sender; //호출한 버튼 알아내고
: : TForm *pForm = (TForm *) pButton->Parent; //버튼의 부모인 폼을 알아내고
: : pForm->Caption= IntToStr(1234);
: : }
: : */
: :
: : /// 이 함수를 만들려고 하신 거겠지요??
: : void __fastcall TFunc::EditPrint(TObject *Sender)
: : {
: : TForm *pForm= (TForm*)(((TButton *)Sender)->Parent); //폼알아내기 한줄요약, 에러발생
: : //에러내용 : E2034 - Cannot convert 'TWinControl * const' to 'TForm *'
: : /// --> 괄호의 묶음을 잘 살펴보세요..
: :
: : for(int i=0; i<pForm->ComponentCount; i++) // Form에는 컨트롤이 있겠지요? 없으면 말구..
: : {
: : /// TEdit control이 있는지 찾아봅시다 TEdit *로 cast 가능한 컨트롤이 있나 확인해 보자구요
: : TEdit *EditCtl = dynamic_cast<TEdit *>(pForm->Components[i]); // Form이 가진 컴포넌트중..
: : if(EditCtl) EditCtl->Text = "Found TEdit"; /// NULL이 아니라 있다면 내용을 바꾸어봅시다
: : }
: : }
|