Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение ширины столбца TListView [D5, Win2k]


solo ©   (2002-12-28 20:27:00) 

Здравствуйте уважаемые, подскажите, как отловить событие, когда юзер мышью изменил ширину столбца у компонента TListView.


Lizard   (2002-12-28 20:50:00) [1]

Попробуй так:
uses стандартный +CommCtrl

type
TForm1 = class(TForm)
LV1: TListView;
procedure FormCreate(Sender: TObject);
private
OldListViewWP : TWndMethod;
procedure NewListViewWP(var Msg : TMessage);
public
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
OldListViewWP := LV1.WindowProc;
LV1.WindowProc := NewListViewWP;
end;

procedure TForm1.NewListViewWP(var Msg : TMessage);
var
Col : TListColumn;
begin
with PHDNotify(TWMNotify(Msg).NMHdr)^ do
case Msg.Msg of
WM_NOTIFY:
begin
if (Hdr.code = HDN_ENDTRACKW then
begin
//событие отловлино - делаешь что хочешь
end;
end;
WM_DESTROY:
begin
LV1.WindowProc := OldListViewWP;
OldListViewWP(Msg);
if csDestroying in LV1.ComponentState then
begin
OldListViewWP := LV1.WindowProc;
LV1.WindowProc := NewListViewWP;
end;
end;
end;
OldListViewWP(Msg);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо