2014-09-09 1 views
2

모드에 TListView이 있습니다. 2 개의 항목으로 채우고 첫 번째 항목 텍스트가 두 번째 항목 텍스트보다 길면 두 번째 항목 텍스트보다 첫 번째 항목을 그립니다.TListView 항목을 생략하고 줄임표로 바꾸는 간단한 방법

더 긴 항목을 줄임표로 바꾸는 빠른 방법이 있습니까? 아니면 복잡한 하나?

내가 델파이 2010과 C++ 보이는 방법 TListView

의 기본 설정 빌더 2010 사용하고 있습니다 :

How it looks

내가 그것을보고 싶지 방법 :

How I want it to look

편집 : tryi 이후 아웃 vsList 스타일 위의 내용이 더 이상 문제가 아니며 추가 코드 (줄임표가 없지만 잘린 항목 없음)없이 작동한다는 것을 발견했습니다.

+0

질문을 명확히하기 위해 스크린 샷을 추가했습니다. – Coder12345

+1

줄임표가 아니라 두 번째 항목을 더 오른쪽 또는 아래로 밀기 위해 '정렬'을 호출 해보십시오. –

+0

'Arrange '를 호출 한 후에 아무런 차이가 보이지 않습니다. – Coder12345

답변

1

TListView과 함께 작업 할 때 종종 Windows 탐색기의 동작을 조사하고 모방합니다. vsSmallIcon 모드에서 줄임표로 질문에 대해서는 Explorer를 체크 아웃했습니다. 창 크기를 조정할 때 항목 캡션에 줄임표가 표시되지 않습니다. 대신 항목이 즉시 재배 열됩니다. 마이크로 소프트가 익스플로러를 그런 식으로 구현하지 않았고 빠른 수정의 기회가 줄어들 기 때문에 필자의 제안은 줄임표 전략을 건너 뛰는 것입니다. 재정렬을 위해 해결할 수 있다면, 다음의 "빠른"대안이 적어도 XE3에서해야합니다.

대안 1 :

ListView1.IconOptions.AutoArrange := true; 

대안 2 : (당신이 재 배열을 원하는 때마다 명시 적으로 호출해야 함) :

ListView1.Arrange(arDefault); 

업데이트 :

I 델파이 2006을 해고하고 위의 메타 ds도 거기에서 작동합니다

+0

문제를 다시 그리는 데 도움이되지 않았습니다. 그러나 뷰 스타일을 vsList로 변경하면이 뷰가 작동한다는 것을 알았습니다 (줄임표가 없지만 클리핑 된 항목이 훨씬 낫습니다). 어쨌든 도움을 주셔서 감사합니다. – Coder12345

+0

더 긴 문자열 값으로 기존 Item의 Caption 속성을 수정하면 설명 된대로 재현 할 수 있습니다. AutoArrange가 활성화되어 있어도 (Delphi 2006 및 XE3에서 확인 된 경우) 다음 항목을 충분히 길게 표시합니다. 항목을 추가/수정 한 후 자동 배열을 false/true로 토글하면 어떻게됩니까? – Lars

+0

아무런 변화가 없습니다. 변화가 없습니다. 그러나 'vsList'모드를 사용하기로 결정한 경우 빠른 해결책이나 수정이없는 것처럼 조사하는 데 너무 많은 시간이 낭비됩니다. – Coder12345

관련 문제