![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Событие ListView [D7, XP]
webpauk © (2008-12-05 09:04:00)есть ли у TListView(ViewStyle=vsReport) событие, отвечающее за изменение размера колонки?
Rouse_ (2008-12-05 09:49:00) [1]Писал в свое время что-то такое, обработчик нотификаций заголовка выглядел примерно так:
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;
Сергей М. (2008-12-05 09:46:00) [2]Это событие извещения родительского окна контрола, извещающее о свершившемся фактеизменения состояния контрола.
webpauk (2008-12-05 09:39:00) [3]
> Сергей М. © (05.12.08 09:35) [6]
за изменение ширины колонки
Palladin (2008-12-05 09:37:00) [4]Это нотификация headerconrol'а
Сергей М. (2008-12-05 09:35:00) [5]
> за данное поведение
За какое такое "данное" ?
webpauk (2008-12-05 09:33:00) [6]методом научного тыка установлено: за данное поведение у 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:32:00) [7]Ручками.
Или автоматически - TListColumn.AutoSize
Или программно - TListColumn.Width
Palladin (2008-12-05 09:32:00) [8]Вопрос стал еще круче и загадочней.
webpauk (2008-12-05 09:22:00) [9]
> Сергей М. © (05.12.08 09:14) [1]
Поставим вопрос по другому: как изменяется размер колонки?
Сергей М. (2008-12-05 09:14:00) [10]Нет.