名前 題名 ▼ Mr.XRAYさん > TListViewで行の高さを低く設定したときの実際の高さを取得するには > https://www.petitmonte.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 の時です. > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link