Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.18;
Скачать: CL | DM;

Вниз

Событие ListView   Найти похожие ветки 

 
webpauk ©   (2008-12-05 09:04) [0]

есть ли у TListView(ViewStyle=vsReport) событие, отвечающее за изменение размера колонки?


 
Сергей М. ©   (2008-12-05 09:14) [1]

Нет.


 
webpauk ©   (2008-12-05 09:22) [2]


> Сергей М. ©   (05.12.08 09:14) [1]


Поставим вопрос по другому: как изменяется размер колонки?


 
Сергей М. ©   (2008-12-05 09:32) [3]

Ручками.
Или автоматически - TListColumn.AutoSize
Или программно - TListColumn.Width


 
Palladin ©   (2008-12-05 09:32) [4]

Вопрос стал еще круче и загадочней.


 
webpauk ©   (2008-12-05 09:33) [5]

методом научного тыка установлено: за данное поведение у TcustomListView отвечает процедура:
procedure WMNotify(var Message: TWMNotify); message WM_NOTIFY;

а именно:
procedure TLV.WMNotify(var Message: TWMNotify);
begin
 inherited;

 with Message.NMHdr^ do
   case code of
     HDN_ENDTRACK: ShowMessage("");
   end;

end;


 
Сергей М. ©   (2008-12-05 09:35) [6]


> за данное поведение


За какое такое "данное" ?


 
Palladin ©   (2008-12-05 09:37) [7]

Это нотификация headerconrol"а


 
webpauk ©   (2008-12-05 09:39) [8]


> Сергей М. ©   (05.12.08 09:35) [6]

за изменение ширины колонки


 
Сергей М. ©   (2008-12-05 09:46) [9]

Это событие извещения родительского окна контрола, извещающее о свершившемся факте изменения состояния контрола.


 
Rouse_ ©   (2008-12-05 09:49) [10]

Писал в свое время что-то такое, обработчик нотификаций заголовка выглядел примерно так:

procedure TGSListview.WndProc(var Message: TMessage);
var
 HDR_STYLE: Integer;
 bIsSet: Boolean;
begin
 inherited;
 with Message do
   if Msg = WM_NOTIFY then
   begin
     with PHDNotify(LParam)^ do
     case Hdr.code of
       HDN_BEGINTRACK, HDN_BEGINTRACKW:
       begin
         if SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @bIsSet, 0) then
           if bIsSet then
           begin
             HDR_STYLE := GetWindowLong(FHeaderHandle, GWL_STYLE);
             if (HDR_STYLE and HDS_FULLDRAG) = HDS_FULLDRAG then
               SetWindowLong(FHeaderHandle, GWL_STYLE,
                HDR_STYLE and not HDS_FULLDRAG);
           end;
         if Assigned(FBeginTrack) then
           FBeginTrack(Self);
         Result := 0;
       end;
       HDN_ENDTRACK, HDN_ENDTRACKW:
       begin
         if Assigned(FEndTrack) then
           FEndTrack(Self);
         Result := 0;
       end;
       HDN_TRACK, HDN_TRACKW:
       begin
         if PItem^.mask = HDI_WIDTH then
           if Assigned(FTrack) then
             FTrack(Self, PItem^.cxy);
         Result := 0;
       end;
     end;
   end;
end;



Страницы: 1 вся ветка

Текущий архив: 2009.01.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
2-1228379676
webpauk
2008-12-04 11:34
2009.01.18
Изменение ClientArea для MDIChild-формы


15-1227425906
Solnce
2008-11-23 10:38
2009.01.18
форум загнивает


15-1227639376
com
2008-11-25 21:56
2009.01.18
Windows не видит сеть


2-1228379285
linx
2008-12-04 11:28
2009.01.18
Функция округления до данного знака.


2-1228633202
@!!ex
2008-12-07 10:00
2009.01.18
Узнать ProcessHandle по HWND окна.