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

C++빌더 Q&A
C++Builder Programming Q&A
[14701] Re:DBtext+IntToStr(i)->DataSource = Table1; ???
만해 [greenuri] 1090 읽음    2002-01-18 17:31
올빼미 님이 쓰신 글 :
: 안녕하세여??? 또 질문을 올립니다.....
: 70여개의 DBtext가 있어서 for문을 쓰려고 합니다.
: 근데.....
: DBtext+IntToStr(i)->DataSource = Table1   이렇게 하니까....되질 않더군요,,,,
: 어떻게 할수 있나여???
: ---------------------------------------------------------------------------------
: 그리고....DBGrid에서 팝업메뉴를 만들어서....뿌려진 레코드의 상세내용Edit창에 불러오려고
: 합니다...그래서 코드를 이렇게 짰는데..
:         EditNum->Text = CustomerData->CustTable->FieldByName("회원번호")->AsString;
:         EditName->Text = CustomerData->CustTable->FieldByName("이름")->AsString;
:         EditSchool->Text = CustomerData->CustTable->FieldByName("학교명")->AsString;
:         EditGrade->Text = CustomerData->CustTable->FieldByName("학년")->AsString;
:         EditBirth->Text = CustomerData->CustTable->FieldByName("생일")->AsString;
:         Editstep->Text = CustomerData->CustTable->FieldByName("과정명")->AsString;
:         EditAddress->Text = CustomerData->CustTable->FieldByName("주소")->AsString;
:         EditTel->Text = CustomerData->CustTable->FieldByName("전화번호")->AsString;
:         EditPhone->Text = CustomerData->CustTable->FieldByName("핸드폰")->AsString;
:         EditParent->Text = CustomerData->CustTable->FieldByName("보호자성명")->AsString;
:         EditIdadress->Text = CustomerData->CustTable->FieldByName("등록번호")->AsString;
:         Editjob->Text = CustomerData->CustTable->FieldByName("보호자직업")->AsString;
:         Editdate->Text = CustomerData->CustTable->FieldByName("계약일")->AsString;
:         Editday->Text = CustomerData->CustTable->FieldByName("배송요일")->AsString;
:  문제가.....팝업메뉴 뛰울때 마우스포인터위치에 관계없이    제일 첫번째레코드의
:  내용만이 Edit창에 뛰어 지더군요.....뭐가 문제인지......가르침부탁합니다...           

안녕하세요 만해 입니다.

흑~ 70개의 필드값을 싹다 Edit로 보내 줄려면 고생이겠네요 ~

크크~

그냥 제가 애기 들릴건 단순한 건데요

Dynamic_cast를 이용하는건데요

우선 기본 조건이 있습니다.

Edit의 Tag 값이 자료를 받아올 필드의 인덱스 값하고 같아야 하거든요

간단히 애기 드리면

void __fastcall TForm1::Vutton1Click(TObject Sender)
{
TEdit* edt = new TEdit(Application);

  for ( int i = 0 ; i < Form1->ComponentCount ; i ++ )
    {
           if ((edt = dynamic_cast<TEdit *>(Form1->Components[i])) != 0)
        {
          edt->Text = Table1->Fields->Fields[edt->Tag]->AsString;
        }
    }
delete edt;
}

헥헥 힘들당~

방금 테스팅한 루틴인데 헐 몸가 이래 잘 기억이 안 나던지

약간 설명 드리면요

  for ( int i = 0 ; i < Form1->ComponentCount ; i ++ )
// 폼 위의 모든 컴포넌트에서
    {
      TEdit* edt = new TEdit(Application);
      if ((edt = dynamic_cast<TEdit *>(Form1->Components[i])) != 0)
//  Edit 컴포넌트만 가져와서
        {
          edt->Text = Table1->Fields->Fields[edt->Tag]->AsString;
//  Edit 컴포넌트의 Tag값과 일치하는 Field의 값을 Edit 컴포넌트에 할당~
        }
    }

간단쵸~

도움이 되면 좋겟네요

그럼 이만
^^//

ps. 방금 수정 했네요 조금 틀린게 있어서 수정하기 전에 다른분들이 안 보셔서 다행~

그럼 정말 이만~ ^^///

+ -

관련 글 리스트
14668 DBtext+IntToStr(i)->DataSource = Table1; ??? 올빼미 942 2002/01/18
29832     Re:DBtext+IntToStr(i)->DataSource = Table1; ??? 마법감자 890 2002/01/18
14701     Re:DBtext+IntToStr(i)->DataSource = Table1; ??? 만해 1090 2002/01/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.