喫茶XRAYトップページ
[
スレッド全体
]
[13514]
TListView の行の高さを設定
返信
削除
2022/10/14 (金) 11:29:08
Mr.XRAY
TListViewで行の高さを低く設定したときの実際の高さを取得するには
https://
www.
petitmon
te.
com/
bbs/
answers?
question
_id=
29997
某掲示板でレスしたコードの基本形は以下です.
掲示板に提示したコードは,
Button1 クリックで TListView の行の高さを変更できるようにしています.
行の高さは ItemHeight というプロパティにしていますから,
この値を表示すれば「高さの表示」です.
type
TListView = class(Vcl.ComCtrls.TListView)
protected
procedure CNMeasureitem(var Message: TWMMeasureItem); message CN_MEASUREITEM;
end;
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//=============================================================================
// フォーム生成時の処理
//=============================================================================
procedure TForm1.FormCreate(Sender: TObject);
var
LCol : TListColumn;
LItem : TListItem;
LIndex: Integer;
begin
ListView1.ViewStyle := vsReport;
ListView1.OwnerDraw := True;
ListView1.Items.BeginUpdate;
LCol := ListView1.Columns.Add;
LCol.Caption := 'Test Items';
LCol.Width := 200;
for LIndex := 0 to 49 do begin
LItem := ListView1.Items.Add;
LItem.Caption := Format(' %.6d',[LIndex + 1]);
end;
ListView1.Items.EndUpdate;
end;
{ TListView }
//----------------------------------------------- -------------------------
// TListView の CN_MEASUREITEM メッセージ処理
// ItemHeight の値を設定
// OwnerDraw が True でないと機能しない
//----------------------------------------------- -------------------------
procedure TListView.CNMeasureitem(var Message: TWMMeasureItem);
begin
inherited;
Message.MeasureItemStruct.itemHeight := 30;
end;
下図の最初の画像が,質問者が問題としている高さ 10 です.
その下は,高さ 30 の時です.
[13515]
Re:TListView の行の高さを設定
返信
削除
2022/10/14 (金) 11:36:49
Mr.XRAY
TListView の行の高さの設定に TImageList を使用することがあります.
提示したコードで TImageList を使用すると,
CN_MEASUREITEM メッセージによる設定は無視されます.
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82