내용은 알겠습니다. 하지만 의문점이 있는데요
만든 Frame네임이 Frame1인데요.
이게 Unit2에 만든거죠. 그래서인크루드 한다음
헤더에 TFrame *Frame[5]; 선언하고
for(int i = 0; i < 5; i++)
{
Frame[i] = new TFrame1(Panel1);
Frame[i]->Parent = Panel1;
Frame[i]->Align = alTop;
Frame[i]->Memo1->Lines->Add("asdf");
}
그럼 여기서 오류가 납니다 Frame를 알지 못한다고 그래서 Frame[i]를 Frame1[i]로 헤더도Frame1[5];로
바꾸고 해보니 Memo1이 TFrame의 멤버가 아니라는 오류가 나더군요.
보면 될것같은데 이상하네요
메모를 주석처리하고 실행해봤는데 이미 만들어진 프레임이라고 또 ㅠㅠㅠㅠ
송신영 님이 쓰신 글 :
: 해더파일에는 포인터만 선언한 것이지 새로운 TFrame의 객체를 선언한 것이 아닙니다.
: 포인터 변수에 TFrame1의 객체를 생성해서 포인팅만 해준 것이기 때문에
: "축구" 님께서 만들어 두신 TFrame1을 사용하는 것입니다. ~
:
: 축구 님이 쓰신 글 :
: : 음 근데 저렇게 하면 이미 만들어논 프레임이 아닌 완전 새 프레임을 쓰는게 아닌지요?
: :
: :
: : 송신영 님이 쓰신 글 :
: : : 음.. C/C++ 공부를 좀더 하셔야 할듯합니다.
: : : 너무 게시판의 질답으로만 문제 해결하려면 자신의 지식이 잘 안됩니다.
: : : 좋은 책 하나 선정해서 열공하셔야 나중에 살이되고 피가됩니다.
: : :
: : :
: : : // 해더 파일에 아래와 같이 선언하면됩니다.
: : : TFrame * Frame[5];
: : :
: : :
: : :
: : : 축구 님이 쓰신 글 :
: : : : 음 저걸 쓰려면 만들어논 프레임 Name를 어떻게 바꿔줘야 하나요?
: : : : Frame로 바꾸니까 에러나고 Frame[]로 바꿔도 에러나고
: : : : 그냥[i]이것만 갔다 붙여도 에러나고 ㅠㅠ
: : : :
: : : : 송신영 님이 쓰신 글 :
: : : : : 포인터 배열을 사용하세요.
: : : : : Frame[i] = new TFrame1(Panel1);
: : : : :
: : : : : 축구 님이 쓰신 글 :
: : : : : :
: : : : : : for(int i = 0; i < 5; i++)
: : : : : : {
: : : : : : Frame1 = new TFrame1(Panel1);
: : : : : : Frame1->Parent = Panel1;
: : : : : : Frame1->Align = alTop;
: : : : : :
: : : : : : Frame1->Memo1->Lines->Add("asdf");
: : : : : : }
: : : : : :
: : : : : :
: : : : : : 이미 만들어논 프레임을 5개 생성하는건데
: : : : : : 저걸 5개 다 만들라면 이름을 바꿔줘야 하는데 어떻게 바꿀지 모르겠어요
: : : : : :
: : : : : : 이름옆에 +연산자를 쓸수도 없고.....