|
TStrings 는 추상클래스입니다.
따라서 그 인스턴스를 생성할 수 없습니다.
이 클래스의 각종 매서드를 구현해놓은 클래스가 있습니다.
TStringList를 사용하십시오.
TStrings는 여러 클래스들에서 구현해서 사용하고 있습니다.
보통 줄단위로 문자열을 보여주는 클래스들이 이에 해당합니다.
그들 간에는 Assign 매서드를 사용해서 자료를 쉽게 교환할 수 있습니다.
TStringList, TMemo, TRichEdit, TComboBox, TListBox,
김원주 님이 쓰신 글 :
: 안녕하세요.
: 몇시간 끙끙대다가.. 게시판을 찾아도 안보이길래.. 이렇게 글을 올립니다.
: 현재 진행하려는 것은 레지스트리에서 각 키를 읽어와서 처리하려고 하는
: 함수를 만드는 중인데...
: 레지스트리에 있는 키를 모두 읽어와 처리하려는 과정에서..
: TRegistryIniFile 클래스의 객체중 ReadSection() 함수를 사용하게 되었습니다.
: 그러는 과정에서 TStrings 객체가 필요하여.. 다음과 같이 하는데..
: 컴파일이 안되네요..
: 제가 뭘 잘 모르고 있는건지 확인좀 부탁 드립니다.
:
: void __fastcall TUserForm::FormShow(TObject *Sender)
: {
: :
: TStrings *DnList = new TStrings(); // 에러나는 부분
: MainForm->ini->ReadSection("Receiver List", DnList);
: :
: }
:
: 위처럼 하려고 합니다.
: 위에서 에러가 나는 부분에서 아래와 같이 에러가 나네요..
:
: [C++ Error] UserManagement.cpp(45): E2352 Cannot create instance of abstract class 'TStrings'
: [C++ Error] UserManagement.cpp(45): E2353 Class 'TStrings' is abstract because of '_fastcall TStrings::Get(int) = 0'
:
: 쩝..
: TStrings 를 초기화하는 방법이 잘못된건가요?
: 해결좀 부탁 드립니다.
:
: P.S. 제가 해본 방법으로는 초기화를 하지 않고 돌려본것(당근 실행도중 에러나겠죠.),
: 그리고 DnList 를 포인터로 선언하지 않고 그냥 변수로 선언해서 new를 사용하지
: 않은 경우(이런경우도 에러나네요.. VCL 함수는 new를 써서 초기화 해야 된다고..)
: 입니다.
|