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

Вниз

ListView изменение ширины столбца?   Найти похожие ветки 

 
AndrewVolkov   (2004-06-26 02:29) [0]

Доброго всем вечера.

Столкнулся с проблемой. Хочу отловить момент изменения ширины столбца у листВью в режиме vsReport. Смотрю, что он не посылает никаких сообщений в момент когда я изменяю ширину столбца. Если кто сталкивался с такой пролемой, подскажите...


 
Mim1 ©   (2004-06-26 04:03) [1]


> , что он не посылает никаких сообщений

Можно проверять изменилась ли ширина столбца в onmouseup событии.


 
AndrewVolkov   (2004-06-26 12:34) [2]

Почему то заголовок не является частью самого Листвью. У них разные хендлы. Поэтому отлавливая событие онМаусАп - я ничего не вижу, если МаусАп происходит с заголовком


 
Mim1 ©   (2004-06-26 18:55) [3]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ComCtrls;

type
 TForm1 = class(TForm)
   ListView1: TListView;
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 OldWndProc : Integer;

implementation

{$R *.dfm}

function MessageDlgWndProc(wnd:Hwnd; Message:integer;Wparam:WPARAM;
                    LParam:LParam):LongInt; stdcall;
 Procedure z;begin
   if OldWndProc <> 0 then
     Result := CallWindowProc(ptr(OldWndProc),wnd,Message,wParam,lParam);
 end;
begin
 case message of
   WM_LBUTTONUP : Form1.Caption := DateTimeToStr(now);
 end;
 z;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OldWndProc := SetWindowLong(getwindow(ListView1.Handle,GW_CHILD),GWL_WNDPROC,integer(@MessageDlgWndProc));
end;

end.


 
AndrewVolkov   (2004-06-26 23:28) [4]

to Mim1

если не сложно, можно в двух словах как это работает

function MessageDlgWndProc(wnd:Hwnd; Message:integer;Wparam:WPARAM;
                   LParam:LParam):LongInt; stdcall;
Procedure z;begin
  if OldWndProc <> 0 then
    Result := CallWindowProc(ptr(OldWndProc),wnd,Message,wParam,lParam);
end;
begin
case message of
  WM_LBUTTONUP : Form1.Caption := DateTimeToStr(now);
end;
z;
end;


Почему она не объявляется и что там внутри делает процедура z

и
OldWndProc := SetWindowLong(getwindow(ListView1.Handle,GW_CHILD),GWL_WNDPROC,integer(@MessageDlgWndProc));

что мы получаем здесь.
Спасибо


 
Mim1 ©   (2004-06-27 01:13) [5]

getwindow(ListView1.Handle,GW_CHILD) \\ ищем дескриптор дочернего окна (шапки таблицы)

OldWndProc := SetWindowLong(getwindow(ListView1.Handle,GW_CHILD),GWL_WNDPROC,integer(@MessageDlgWndProc)); \\ заменяем оконную процедуру для найденого окна, и созраняетм адрес старой в переменной


> Почему она не объявляется


кто не обявляется?

и что там внутри делает процедура
> z

вызывает старую оконную процедуру.


 
AndrewVolkov   (2004-06-27 12:56) [6]

не объявляется в Type

Спасибо, в принципе все ясно. Но жутко мудренно.
Без подсказки сам такое через неделю не напишу...



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

Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.03 c
14-1087991840
Ditrix
2004-06-23 15:57
2004.07.11
глюки bde на nvidia


14-1087853882
Marser
2004-06-22 01:38
2004.07.11
Сегодня 22-е июня


3-1086899351
DIS
2004-06-11 00:29
2004.07.11
фильтр по двум колонкам


14-1087542691
WondeRu
2004-06-18 11:11
2004.07.11
Какая Книга Вам Помогла Стать Тем Кто Вы Сейчас?


1-1087545504
Mitrofan
2004-06-18 11:58
2004.07.11
Как по существующему меню приложения построить дерево





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский