掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Delphi12でTListView.Columns[n].Width の値が合わない (ID:151633)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TListViewの vsReportで 2つある列の右側を最大まで広げるという処理を作っているのですが DelphiXE5とDelphi12でコンパイルしているのですが結果が変わります ListViewとButtonをフォームに置いて procedure TForm1.Button1Click(Sender: TObject); var d : TListColumn; dl : TListItem; begin ListView1.ViewStyle := vsReport; d := ListView1.Columns.Add(); d.Caption := 'A'; d.Width := 100; d := ListView1.Columns.Add(); d.Caption := 'B'; d.Width := ListView1.ClientWidth - 100; // 問題の所 dl := ListView1.Items.Add(); dl.Caption := '1'; dl := ListView1.Items.Add(); dl.Caption := '2'; end; 環境A Windows10 テキストサイズ 125% DelphiXE5、Delphi10 結果:問題なし 環境B Windows11 テキストサイズ 200% Delphi12.1、Delphi12.2 結果:Width の値が想定の2倍になる 解決方法として 環境Bの場合のみ d.Width := (ListView1.ClientWidth - 100) div 2 -2; // これで直る としているのですが横幅の設定で何か別の方法を使わないといけないのでしょうか? ※別件になりますが縦幅も同じような現象が発生します
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.