2009-07-18 5 views
1

내 목록보기에서 모든 항목과 하위 항목을 가져 오려고하지만 "TlistItem"은 모두 얻을 수 있습니다.listview에서 아이템과 서브 아이템을 얻는 방법?

내 코드는 다음과 같습니다.

procedure TFrameAnalyzer.AddEntry(opcode:word;data:Array of byte;direction:byte); 
begin 
    MessageBox(0,PChar(sListView1.Items.Item[4].ToString),'',0); 
end; 

문자열과 이름으로 항목의 이름을 얻는 방법 2 개의 하위 항목이 있습니까?

+0

확실하지는 않지만 실제로 winforms 태그가 적절합니까? 델파이 2009를 사용하고 있다면 (나는 가정 한대로) 그렇게하지 않을 것입니다. – mghie

답변

5

이름이 없기 때문에 항목의 이름을 가져올 수 없습니다. 그것은 Caption을 가지며 TStrings 유형의 SubItems 속성을가집니다. 이 모든 것은 Delphi 문서 BTW에서 쉽게 찾을 수 있습니다. TListItemTListItems 클래스를 살펴보십시오.

그래서 당신은 생략 핸들링

procedure TFrameAnalyzer.AddEntry(opcode:word;data:Array of byte;direction:byte); 
var 
    Item: TListItem; 
    s: string; 
begin 
    Item := sListView1.Items.Item[4]; 
    s := Item.Caption + #13#10 
    + ' ' + Item.SubItems[0] + #13#10 
    + ' ' + Item.SubItems[1]; 
    MessageBox(0, PChar(s), nil, 0); 
end; 

처럼 모든 오류를 뭔가를 할 수 당신은 확실히 인덱스가 유효한지 먼저 확인하지 않고 이런 식으로 배열 속성에 접근해서는 안된다.

+0

괄호와 쉼표 구분 기호를 제거하고 "+ # 13 +"항목 및 "+"# 13 + " – Argalatyr

+0

하위 항목을 사용하여 더 읽기 쉬운 (IMHO) 수 있습니다. 난 단지 그것들을 제대로 보이게 만들고 싶었고, 하나의 코드 라인으로 그들을 뭉치 게하지 않으려 고했다. – mghie

+0

감사합니다. 작동합니다. –

관련 문제