Как увеличить высоту строки списка в стиле отчета? - PullRequest
9 голосов
/ 15 августа 2011

Мне нужно добавить всего 2 пикселя :) к высоте строки в виде списка (пользовательский нарисованный индикатор выполнения теперь слишком узок).

Есть два хороших ответа Изменить высоту элемента списка , http://www.delphipages.com/forum/showthread.php?t=49939,, но я не смог этого сделать.

Я знаю, что это возможно сделать со списком изображений, но у меня уже есть изображения 16x16:)

Кто-нибудь может мне помочь? Я буду признателен за это.

Ответы [ 2 ]

14 голосов
/ 15 августа 2011

Ответьте на сообщение управления CN_MEASUREITEM следующим образом:

type
  TListView = class(ComCtrls.TListView)
  private
    procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM;
  end;

  TForm1 = class(TForm)
    ...

procedure TListView.CNMeasureItem(var Message: TWMMeasureItem);
begin
  inherited;
  Inc(Message.MeasureItemStruct.itemHeight, 2);
end;

Примечание: это сообщение будет отправлено, только если свойство OwnerDraw имеет значение true.

5 голосов
/ 30 апреля 2016

Быстрая и грязная альтернатива без написания кода будет состоять в том, чтобы добавить TImageList, установить его ширину равной 1, а его высоту равной желаемой высоте линий и назначить ее для SmallImages списка.

...