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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[592] [TIP] 리스트뷰(ListView)의 Item, SubItem 내용 수정하기
푸른노래 [song4201] 12411 읽음    2006-04-05 18:18
큭... ^^; 사실 볼랜드의 TListView의 내용을 추가하는 소스는 많이 봤습니다만!
추가한 내용을 수정하는 소스는 아직 보질 못했습니다. ㅡㅡ; 제가 못찾은 걸까요?
구글에서 외국의 소스를 찾아보아도 대부분이 추가하는 소스,
리스트뷰의 배경색이나, 글자색 등의 색 종류의 팁은 많이 있었지만,

정작 리스트뷰의 내용을 수정하는 것은 찾기가 정말 무척이나 어렵더군요. 나중에는 포기하고,
삽집하다, 드뎌 찾았습니다.

여기 볼랜드포럼에도 그런 내용은 없었습니다.
Item, SubItem 내용 수정하고 싶다는 질문이 있었지만, 불가능하다고 나왔더군요.
내용을 수정하는 소스입니다.

제가 개인적으로 만들고 있는 인명관리 프로그램의 소스의 일부분입니다.
제가 프로그램을 계속 업데이트하고 있는데 지금 올리는 소스에서는 절대 에러가 없었습니다.

argument
MEN * inMen : 제가 만든 클래스입니다. 삭제하시고 사용하세요
TListView * inListView : 여러개의 리스트뷰에서 사용할 것 같아 포인터를 받아서 사용합니다.
//---------------------------------------------------------------------------
//todo : ListView Item Editing
void TForm_Main::gfListView_Edit_Men(MEN * inMen, TListView * inListView)
{
    TListItem  *tmpListItem;
    tmpListItem = inListView->ItemFocused;

    inListView->Items->BeginUpdate();

    tmpListItem->SubItems[0].SetText(inMen->Get_LastName());

    tmpListItem->SubItems->Add(inMen->Get_Name());
    tmpListItem->SubItems->Add(inMen->Get_Birth());

    if (inMen->Get_Sex())
        tmpListItem->SubItems->Add("남자");
    else
        tmpListItem->SubItems->Add("여자");

    tmpListItem->SubItems->Add(inMen->Get_AddressZipCode());
    tmpListItem->SubItems->Add(inMen->Get_AddressCity());
    tmpListItem->SubItems->Add(inMen->Get_Address());
    tmpListItem->SubItems->Add(inMen->Get_Email());
    tmpListItem->SubItems->Add(inMen->Get_Homepage());
    tmpListItem->SubItems->Add(inMen->Get_Phone1());
    tmpListItem->SubItems->Add(inMen->Get_Phone2());

    inListView->Items->EndUpdate();
}
김태선 [jsdkts]   2006-04-05 19:12 X
참고로,
Item은 수정하는게 안보이는데,
Item->Caption = "새 내용";
이렇게 하시면 되고요.

서브아이템은
Item->Subitems->Strings[순서인덱스] = " 새 내용 ";
이런 식으로  해당 내용을 수정하면 됩니다.
서브아이템은 TStrings 클래스닌까 문자열 다루듯이 하시면 되죠.

아이템 추가는
TListItem  *Item = Items->Add();
Item->Caption = "제목";
Item->SubItems->Add("내용1");
Item->SubItems->Add("내용2");
Item->SubItems->Add("내용3");
식으로 상투적으로 처리합니다. 
푸른노래 [song4201]   2006-04-06 11:26 X
와... 그렇군요... 너무 삽질을 하다 보니... 미쳐 생각을 못했습니다.
지금 보니깐, String 클래스로 돼어있군요... 허허 ㅡㅡ;

다음 부터는 좀더 자세히 봐야 겠습니다. ㅅㅅ 감사합니다.

+ -

관련 글 리스트
592 [TIP] 리스트뷰(ListView)의 Item, SubItem 내용 수정하기 푸른노래 12411 2006/04/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.