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

Вниз

Как определить момент изменения размера колонки в Listview   Найти похожие ветки 

 
dreams   (2004-10-12 14:00) [0]

Собствено Сабж. Пока ничего не смог найти :(  кто нибудь сталкивался ?


 
Семен Сорокин ©   (2004-10-12 14:24) [1]

unit ExListView;

interface

uses
 Windows, Messages, SysUtils, Classes, Controls, ComCtrls, CommCtrl;

type
 TVLColumdBeginResizeEvent = procedure(Sender: TObject; Column: TListColumn) of object;
 TVLColumdEndResizeEvent = TVLColumdBeginResizeEvent;

 TExListView = class(TListView)
 private
  FOnColumnBeginResize: TVLColumdBeginResizeEvent;
  FOnColumnEndResize: TVLColumdEndResizeEvent;
  procedure WMNotify(var Msg: TWMNotify); message WM_NOTIFY;
 published
  property OnColumnBeginResize: TVLColumdBeginResizeEvent read FOnColumnBeginResize write FOnColumnBeginResize;
  property OnColumnEndResize: TVLColumdEndResizeEvent read FOnColumnEndResize write FOnColumnEndResize;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Samples", [TExListView]);
end;

{ ------------------------------- TExListView -------------------------------- }

procedure TExListView.WMNotify(var Msg: TWMNotify);
begin
inherited;
case Msg.NMHdr^.code of      
 HDN_BEGINTRACK: if Assigned(FOnColumnBeginResize) then
  FOnColumnBeginResize(self, Columns[PHDNotify(Pointer(Msg.NMHdr))^.Item]);
 HDN_ENDTRACK: if Assigned(FOnColumnEndResize) then
  FOnColumnEndResize(self, Columns[PHDNotify(Pointer(Msg.NMHdr))^.Item])
end
end;

end.


 
dreams   (2004-10-12 14:45) [2]

> Семен Сорокин ©   (12.10.04 14:24) [1]

Спасибо за помощь , но тут дело в чём : я использую уже готовый компонент Listview ( не стандартный ) и переделать его не могу так как исходники закрыты :(  

Стандартное решение есть ?


 
begin...end ©   (2004-10-12 14:47) [3]


> [2] dreams   (12.10.04 14:45)


> я использую уже готовый компонент Listview ( не стандартный
> ) и переделать его не могу так как исходники закрыты

Вроде в [1] было создание наследника, а не переделывание.


 
Miron   (2004-10-12 22:02) [4]


> Семен Сорокин ©   (12.10.04 14:24) [1]

Это только начало и конец изменения. Тут все работает...
А вот сам процесс... Хренотень какая-то, короче.

Если изменить так:

unit ExListView;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, ComCtrls, CommCtrl;

TExListView = class(TListView)
private
 FOnColumnResize: TNotifyEvent;
 procedure WMNotify(var Msg: TWMNotify); message WM_NOTIFY;
published
 property OnColumnResize: TNotifyEvent read FOnColumnResize write FOnColumnResize;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("Samples", [TExListView]);
end;

{ ------------------------------- TExListView -------------------------------- }

procedure TExListView.WMNotify(var Msg: TWMNotify);
begin
    inherited;
    case Msg.NMHdr^.code of      
       Low(Integer)..High(Integer): if Assigned(FOnColumnResize) then
       FOnColumnResize(self);
    end
end;

end.



и в сделать
procedure TForm1.ListView1ColumnResize(Sender: TObject);
var
  Loop: Integer;
begin
   Caption := "";
   for Loop := 0 to ListView1.Columns.Count - 1 do begin
      Caption := Caption + IntToStr(ListView1.Column[Loop].Width) + "   ";
   end;
end;


Caption изменяется когда угодно, но только не в процессе изменения ширины столбца. Видимо, кто-то в Borlande схалтурил...



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
1-1097592193
Expl
2004-10-12 18:43
2004.10.31
вызов hlp файла при нажатии на клавишу


4-1095787846
Асякин
2004-09-21 21:30
2004.10.31
Защита информации


3-1096898655
Loki3D
2004-10-04 18:04
2004.10.31
какие функции у PDOXUsers.lck


14-1097049783
Holy
2004-10-06 12:03
2004.10.31
Белгородская сходка...


8-1091359722
Itap
2004-08-01 15:28
2004.10.31
"Распознать" звук