Einzelnen Beitrag anzeigen

Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#8

AW: Desingntime, aber nicht Runtime

  Alt 23. Mär 2015, 08:16
Hi,

wo das Problem liegt:
Es ist kein Problem, die Headerhöhe einer Listview zu ändern:
Delphi-Quellcode:
var hdr: THandle;

begin
  hdr:=ListView_GetHeader(ListView1.Handle);
  SetWindowPos(hdr, 0   , 0, 0, Listview1.width, 50, 0 );
  InvalidateRect(hdr,nil,True);
Leider wird dann aber die linke obere Ecke der "Restlistview" (also der eigentlichen Liste) nicht automatisch angepasst. Ergebnis: Je nach dem, was gerade vorne ist, wird etwas "übermalt".

Das Rechteck der Restlistview zu bekommen, ist auch kein Problem. (Linke obere Ecke = Linke obere Ecke des Topitems).
Ich habe jedoch noch keine Möglichkeit gefunden, die auch (entsprechend der neuen Headerhöhe) zu setzen. (Dazu müsste man direkt rankommen, aber wie...?)

Man könnte natürlich im OwnerDraw alle Items verschieben. Nur, dann delegiert man das Problem nach unten. Und im Sinne des Laufzeitverhaltens wäre das wohl nicht.
Also, eine echte Lösung wäre das wahrscheinlich nicht.

Ich habe nun etwas gefunden, wie man die Itemheight insgesamt ändern kann. Vielleicht kann man damit etwas zurechtdrehen.
Mal sehen...

Gruß
Mattze
  Mit Zitat antworten Zitat