Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listview spalte ausblenden (https://www.delphipraxis.net/13057-listview-spalte-ausblenden.html)

Remote1 10. Dez 2003 11:13


Listview spalte ausblenden
 
wie kann man bei einem listview eine spalte ausblenden???

im moment hab ich width auf 0 gesetzt, ist aber natürlich keine lösung (kann man ja auch manuell im programm wieder ändern)

Chewie 10. Dez 2003 13:07

Re: Listview spalte ausblenden
 
Mit der Breite 0 hab ich das auch mal gelöst. Und zum Verhindern der Spaltenbreitenveränderung hab ich das Listview subgeclasst und bzw. HDN_BEGINTRACKA abgefangen. Hier ist der Code für nonVCL:

Delphi-Quellcode:
function IPLVWndProc(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: lParam):
  lResult; stdcall;
begin
  Result := 0;
  case uMsg of
    WM_NOTIFY:
      begin
        with PNMHdr(lParam)^ do
        begin
          if (code = HDN_BEGINTRACKW) or (code = HDN_BEGINTRACKA) then
            with PHDNotify(lParam)^ do Result := Integer(Item = 0);
        end;
        CallWindowProc(OldIPLVWndProc, hWnd, uMsg, wParam, lParam);
      end;
  else
    Result := CallWindowProc(OldIPLVWndProc, hWnd, uMsg, wParam, lParam);
  end;
end;
Such mal hier nach Hier im Forum suchensubclassing VCL, damit solltest du den Code für die VCL portieren können.

Ach so: hier wird verhindert, dass die 1. Spalte (Index 0) verändert wird.

Thunderchild 10. Dez 2003 17:15

Re: Listview spalte ausblenden
 
Einerseits umständlicher (wegen neu füllen) und andererseits einfacher (weil kein Subclassing) mach ich das so:
ich lösche die Spalte aus dem Listview und schreibe die Liste neu voll, indem ich die Caption der Spalte vergleiche.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz