Delphi:如何调整ownerdrawn Listbox,用于各种系统DPI?

时间:2013-02-14 15:22:42

标签: delphi listbox

Delphi7的。我有Listbox,OwnerDrawn,具有固定的ItemHeight。现在我想让它在125%的Windows字体大小上看起来不错。目前我看到项目字体增加但ItemHeight不是,因此项目被Y“截断”。 当操作系统有125%或150%的字体大小时,如何调整ItemHeight?

1 个答案:

答案 0 :(得分:1)

不能将OnMeasureItem用作List.Style = OwnerDrawFixed。 我的溶胶:

function ScaleFontSize(Size: Integer; Form: TForm): Integer;
begin
  Result:= Size * Form.PixelsPerInch div 96 + 1;
end;

procedure TfmSetup.TntFormCreate(Sender: TObject);
begin
  with ListTabColors do
    ItemHeight:= ScaleFontSize(ItemHeight, Self);
end;