ListView - linie nagłówków nie zgrywają się z siatką (grid)

0

TListView ma chyba jakiś błąd?
Jak ew temu zaradzić, nagłówki kolumn nie zgrywają się kompletnie z siatką listy, 3px różnicy

HGpY8Hu.png

tlistview w trybie vsReport, kolumny i wiersze.

0

Możesz wyłączyć GridLines lub rysować linie na canvasie osobiście wybrałbym opcję nr 1 :)

0

Ewentualnie zawsze można podłubać coś w kodzie komponentu, albo subklasować jeśli jest taka możliwość i nadpisać co trzeba.

0

ListView to systemowa kontrolka a nie Delphi (komponent TListView to tylko nakładka) więc to nie jest błąd środowiska bo to nie ono jest odpowiedzialne za jej wygląd (pod warunkiem że korzystamy z domyślnego wyglądu a nie rysujemy samodzielnie) tylko system.

0

Takie sobie rozwiązanie zresztą nie wiem czy dobrze, bo może (nie sprawdziłem) znowu źle wyglądać w innej wersji systemu:

uses
  CommCtrl;

procedure TForm1.FormShow(Sender: TObject); //nie może być w OnCreate
const
  CORRECT_VAL = 1; //o ile px przesunąć
var
  hListViewHeader: Cardinal;
begin
  hListViewHeader:= ListView1.Perform(LVM_GETHEADER, 0, 0);
  if (hListViewHeader > 0) then
    SetWindowPos(hListViewHeader, 0, CORRECT_VAL, 0, 0, 0, SWP_NOOWNERZORDER or SWP_NOSIZE);
end
0

Dzieki dziala, ale trzeba ciagle przerysowywac sypie sie np po ruszeniu formy

1 użytkowników online, w tym zalogowanych: 0, gości: 1