喫茶XRAYトップページ

[▲前のスレッド]

[13514] TListView の行の高さを設定返信 削除
2022/10/14 (金) 11:29:08 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 の時です.



[13515] Re:TListView の行の高さを設定返信 削除
2022/10/14 (金) 11:36:49 Mr.XRAY
TListView の行の高さの設定に TImageList を使用することがあります.
提示したコードで TImageList を使用すると,
CN_MEASUREITEM メッセージによる設定は無視されます.


[13516] またまた解読に失敗 !! 返信 削除
2022/10/14 (金) 13:45:16 Mr.XRAY
> TListViewで行の高さを低く設定したときの実際の高さを取得するには
> https://www.petitmonte.com/bbs/answers?question_id=29997


おっ,質問者の反応があり,解決済になつていますね.
何のことはない.単に TListView の行の高さを取得したいだけだったのね.

しかし,まぁ,いろいろと書き込んで・・・
何なんだ,一体.
私の解読能力の絶対的不足なのかしら・・.


[13517] サンプルとして追加返信 削除
2022/10/14 (金) 22:20:56 Mr.XRAY
サンプルとして追加しました.

[ 786_TListView の行の高さを設定 ]
http://mrxray.on.coocan.jp/Delphi/plSamples/784_TListView_ItemHeight.htm



[13518] TTreeView の行の高さ返信 削除
2022/10/16 (日) 17:21:42 Mr.XRAY
TTreeView のサンプルも追加しました.

[ 788_TTreeView の行の高さ ( アイテムの高さ ) 設定と取得 ]
http://mrxray.on.coocan.jp/Delphi/plSamples/788_TTreeView_ItemHeight.htm


[13522] TListView のヘッダのカスタム描画返信 削除
2022/10/24 (月) 21:47:41 Mr.XRAY
以下も追加しました.
 
[ 786_TListView のカラムヘッダのカスタム描画 ]
http://mrxray.on.coocan.jp/Delphi/plSamples/786_TListView_ColumnHeader.htm


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82