AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TLIstView Spaltenänderung Benachrichtigung

Ein Thema von ManfredG · begonnen am 27. Okt 2007 · letzter Beitrag vom 9. Mär 2009
 
Jelen

Registriert seit: 5. Nov 2003
45 Beiträge
 
#4

Re: TLIstView Spaltenänderung Benachrichtigung

  Alt 9. Mär 2009, 15:42
Dieses Thema hat mir gerade weitergeholfen.
Um die Sache etwas eleganter nutzen zu können, habe ich eine Komponente daraus gemacht:
Delphi-Quellcode:
unit MyListView;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type TColWidthChangeEvent = procedure(Sender: TObject;
                                      ACol,AWidth: integer) of object;
     TMyListview = class(TListview)
     private
       FOnColWidthChange: TColWidthChangeEvent;
     protected
       procedure WMNotify(var Msg: TWMNotify); message WM_NOTIFY;
     published
       property OnColWidthChange: TColWidthChangeEvent read FOnColWidthChange
                                                       write FOnColWidthChange;
     end;

procedure Register;

implementation

uses commctrl;

procedure TMyListview.WMNotify(var Msg: TWMNotify);
 var ColumnIndex: integer;
 begin
  inherited;
  if (Msg.NMHdr^.code = HDN_ENDTRACK) and Assigned(OnColWidthChange)
  then begin { Ereignis OnColWidthChange generieren }
        ColumnIndex := PHDNotify(Msg.NMHdr)^.Item;
        OnColWidthChange(Self,ColumnIndex,Columns[ColumnIndex].Width);
       end;
 end;

procedure Register;
 begin
  RegisterComponents('My',[TMyListview]);
 end;

end.
Damit verfügt das TMyListView über das gewünschte OnColWidthChange-Ereignis.

Allerdings habe ich das commctrl.ListView_GetColumnWidth(Handle,ColumnInde x) rausgeworfen.
Es übergibt manchmal den Wert, bis zu dem der Anwender gezogen hat, aber nicht immer (?).

Columns[ColumnIndex].Width hingegen übergibt - zumindest bei mir - immer den Wert, der sich letztendlich einstellt, auch unter Berücksichtigung von MinWidth und MaxWidth.

@bitsetter: Falls Du dies noch liest, vielleicht kannst Du noch anfügen, warum Du ListView_GetColumnWidth benutzt hast.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 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