|
1번부터 40번까지 모든 에디트 초기화 하실 경우.
for(int i = 1; i <= 40 ; i++)
{
static_cast<TEdit*>(FindComponent("Edit"+IntToStr(i)))->Text = "";
}
그냥 FindComponent를 사용하시면 Component자체로 나오기 때문에 해당 컴포넌트가 TEdit형이라는 걸 알려주기 위해서 캐스팅하는 방식입니다.(.. 어쨋거나 캐스팅이기 때문에 서로 캐스팅이 가능한 녀석들이라면 억지로 넣을수도 있습니다.)
이걸 그대로 사용하셔서 대입값이 모두 배열속에 넣어져있으면
for(int i = 1; i <= 40 ; i++)
{
static_cast<TEdit*>(FindComponent("Edit"+IntToStr(i)))->Text = ArTemp[i];
}
이런 식으로 넣어주실수도 있죠.
그리고 만약에 에디트 1~20까지의 내용을 21~40까지 옮기시려면.
for(int i = 1; i <= 20 ; i++)
{
static_cast<TEdit*>(FindComponent("Edit"+IntToStr(i+20)))->Text = static_cast<TEdit*>(FindComponent("Edit"+IntToStr(i)))->Text ;
}
이런 것도 잘 돌아갑니다.
어차피 첫번째만 써놨어도 나머지는 필요없는거지만 그냥 길게 한번 써봤어요 ^^;;;;;
김승철 님이 쓰신 글 :
: 빌더5를 사용중입니다.
: 40여개의 Edit 에 화일에서 특정값을 불러와서 대입을 시키는데
: 그냥 무식하게 40라인을 할당해서 그냥 " Edit1->Text= 대입값1...... Edit40->Text=대입값40 "
: 이런식으로 하다보니 라인이 길어집니다. for 문으로 깔끔하게 돌리려고 하는데
: Edit1~Edit40 까지 어떻게 처리를 하는지 몰라서 이렇게 질문을 드립니다.
|