Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

Как определить момент изменения размера колонки в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.049 c
8-1091529268
Wistler
2004-08-03 14:34
2004.10.31
Получение битмапа с TVideoWindow библиоте DSPack


8-1091472569
Dima_Delphi
2004-08-02 22:49
2004.10.31
Как при ресайзе имейджа сделать чтоб картинка не промаргивала??


14-1097149732
}|{yk
2004-10-07 15:48
2004.10.31
Пиккардийская терция - супер!


4-1095756933
HDD
2004-09-21 12:55
2004.10.31
Индификатор окна


1-1098099769
ORMADA
2004-10-18 15:42
2004.10.31
Ярлыки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский