답변 감사합니다.
kylix 님의 방식은 라자루스에서 동작하는데 빌더님의 방식은 안되네요. TT_TT;;
컬럼이 두개라서 다음과 같은 코드로 해결했습니다.
procedure TFormMain.ListViewLogResize(Sender: TObject);
begin
if Self.ListViewLog.ClientWidth > Self.ListViewLog.Columns.Items[0].Width then
Self.ListViewLog.Columns.Items[1].Width := Self.ListViewLog.ClientWidth - Self.ListViewLog.Columns.Items[0].Width;
//Self.ListViewLog.Columns.Items[1].Width := -2;
end;
다시 한번 답변 감사합니다.
빌더 님이 쓰신 글 :
: kylix 님이 쓰신 글 :
: : ListView의 Client영역구한뒤에 마지막을 제외한 나머지 컬럼들의 width를 빼주시면 마지막 컬럼의 크기가 되겠죠.
: :
: : var
: : W, I: Integer;
: : begin
: : W := ListView1.ClientWidth;
: : for I := 0 to ListView1.Columns.Count - 2 do
: : Dec(W, ListView1.Columns[I].Width);
: : ListView1.Columns[ListView1.Columns.Count - 1].Width := W;
: : end;
: :
: : MarunGuy 님이 쓰신 글 :
: : : 안녕하세요.
: : : TListView 를 vsReport 스타일로 설정했습니다.
: : :
: : : 첨부된 이미지처럼 TListVIew 의 폭이 변하더라도 마지막 컬럼의 끝을
: : : TListView 영역의 오른쪽끝으로 설정되게 하려면 어떻게 해야하나요?
: : :
: : : TListVIew 의 OnResize 이벤트에서 어떻게 처리하면 될것 같은데..
: : : 막상 해보려니 어떻게 해야 될지 모르겠네요. TT_TT;;;
: : :
: : : 그럼.
:
:
:
:
: for 문 돌려서 칼럼 너비 계산할 필요 없이, 더 간단하게 처리할 수 있습니다.
:
:
:
: void __fastcall TForm1::ListView1Resize(TObject *Sender)
: {
: ListView1->Columns->Items[1]->Width = -2;
: }
:
:
:
: 여기서 Width = -2 는 ListView 콘트롤에서 칼럼의 폭을 보정하는 프리 디파인된 값으로 사용 됩니다.
|