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
[57201] 어디까지 궁금하신 것인지 모르겠지만~예제가 도움이 되시길^^
조대현.Clau [casanebula] 1224 읽음    2009-06-10 13:42
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);
: }
: //---------------------------------------------------------------------------

+ -

관련 글 리스트
57198 !!왕초보!!Tcombobox에 저장및조회를 하는 프로그램 빌더초보자 917 2009/06/10
57201     어디까지 궁금하신 것인지 모르겠지만~예제가 도움이 되시길^^ 조대현.Clau 1224 2009/06/10
57203         Re:그리구요..^^ 빌더초보자 1192 2009/06/10
57204             설마...과제는 아니시죠?ㅎㅎ 조대현.Clau 1505 2009/06/10
57200     Re:!!왕초보!!Tcombobox에 저장및조회를 하는 프로그램 김시환 1104 2009/06/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.