1. 콤보박스에 추가와 검색이 필요하신거면 다음 예제가 도움이 되실겁니다.
<추가>
ComboBoxName->Add(txtName->Text, NULL);
<검색>
int iIndex;
iIndex = ComboName->Items->IndexOf(txtName->Text);
iIndex에 검색한 이름이 몇번째 위치인지 알 수 있습니다.
또는
int iIndex;
iIndex = ComboName->ItemIndex;
iIndex에 현재 선택된 아이템의 위치를 알 수 있습니다.
그래서 저장된 주소록중 iIndex에 해당하는 정보를 에디트박스에 뿌려주시면 됩니다.
2. 빌더에는 TStringList라는 아주 편리한 클래스가 있습니다.
문자열을 추가할 수 있으며 파일로 저장/읽기가 가능합니다.
<간단한 사용법>
TStringList *ListName;
ListName = new TStringList;
ListName->LoadFromFile("Name.dat");
ListName->Add("홍길동");
AnsiString asFind;
asFind = ListName->Strings[0];
EditFind->Text = asFind;
ListName->SaveToFile("Name.data");
delete ListName;
3. 만드시려는 주소록의 전체예제 입니다.
TStringList *ListName;
TStringList *ListAge;
TStringList *ListPhone;
TStringList *ListEmail;
//---------------------------------------------------------------------------
void __fastcall TForm9::btnAddClick(TObject *Sender)
{
// 입력 항목 검사
if(txtName->Text.Trim().IsEmpty()) ShowMessage("이름을입력하세요");
else if(txtAge->Text.Trim().IsEmpty()) ShowMessage("나이를입력하세요");
else if(txtPhone->Text.Trim().IsEmpty()) ShowMessage("전화번호를입력하세요");
else if(txtEmail->Text.Trim().IsEmpty()) ShowMessage("이메일을입력하세요");
// 중복된 이름이 있는지 검사
if(ComboName->Items->IndexOf(txtName->Text) < 0){
// 중복된 이름이 없으면 Combo에 추가한다.
// Combo와 Index를 같게하여 TStringList에도 추가하고 저장한다.
// 추가
ComboName->AddItem(txtName->Text, NULL);
ListName->Add(txtName->Text);
ListAge->Add(txtAge->Text);
ListPhone->Add(txtPhone->Text);
ListEmail->Add(txtEmail->Text);
// 저장
ComboName->Items->SaveToFile("ComboName.dat");
ListName->SaveToFile("ListName.dat");
ListAge->SaveToFile("ListAge.dat");
ListPhone->SaveToFile("ListPhone.dat");
ListEmail->SaveToFile("ListEmail.dat");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm9::FormCreate(TObject *Sender)
{
// TStringList 초기화
ListName = new TStringList;
ListAge = new TStringList;
ListPhone = new TStringList;
ListEmail = new TStringList;
// 저장된 주소록 내용을 읽는다.
ComboName->Items->LoadFromFile("ComboName.dat");
ListName->LoadFromFile("ListName.dat");
ListAge->LoadFromFile("ListAge.dat");
ListPhone->LoadFromFile("ListPhone.dat");
ListEmail->LoadFromFile("ListEmail.dat");
}
//---------------------------------------------------------------------------
void __fastcall TForm9::ComboNameChange(TObject *Sender)
{
// Combo가 선택되면 해당되는 Index에 맞는 주소록 내용을 Text에 표시한다.
txtName->Text = ListName->Strings[ComboName->ItemIndex];
txtAge->Text = ListAge->Strings[ComboName->ItemIndex];
txtPhone->Text = ListPhone->Strings[ComboName->ItemIndex];
txtEmail->Text = ListEmail->Strings[ComboName->ItemIndex];
}
//---------------------------------------------------------------------------
빌더초보자 님이 쓰신 글 :
: 주소록을 만들고 있는데요...
: 이름, 나이, 전화번호, 이메일을 입력하고 추가 버튼을 눌렀을 경우 Tcombobox에 저장하고
: Tcomcobox에 저장된 이름을 선택하고 조회를 눌렀을 경우
:
: txtName->Text
: txtAge->Text
: txtPhone->Text
: txtEmail->Text
:
: 에 보여주는것을 해야 하는데 Tcombobox에 어떻게 넣어야 하는지 모르겠어요...
: 고수님 좀 도와주셔요..^^
:
: //---------------------------------------------------------------------------
: void __fastcall TForm1::btnAddClick(TObject *Sender)
: {
: Set start;
:
: if(txtName->Text.Trim().IsEmpty()) ShowMessage("이름을입력하세요");
: else if(txtAge->Text.Trim().IsEmpty()) ShowMessage("나이를입력하세요");
: else if(txtPhone->Text.Trim().IsEmpty()) ShowMessage("전화번호를입력하세요");
: else if(txtEmail->Text.Trim().IsEmpty()) ShowMessage("이메일을입력하세요");
: strcpy(start.name, txtName->Text.Trim().c_str());
: start.age = txtAge->Text.Trim().ToInt();
: strcpy(start.phone, txtPhone->Text.Trim().c_str());
: strcpy(start.email, txtEmail->Text.Trim().c_str());
:
: FILE *fp = fopen("info.dat","wb");
: fwrite(&start, sizeof(start), 1, fp);
: fclose(fp);
: }
: //---------------------------------------------------------------------------