![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват сообщения DoubleClick [D7, WinXP]
Student © (2009-08-29 22:50:00)Столкнулся с задачей: "Навигация по каталогам и файлам". Выбрал компонент ShellListView. Сделал составной класс, вот код:
unit Unit2;
interface
uses
// system units
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Dialogs,
ExtCtrls, StdCtrls, IniFiles, Buttons,
// additional units
ShellCtrls;
type
TArchiveReports = class(TObject)
private
pnlMain : TPanel;
lvListView : TShellListView;
procedure MesDblClick (var MyMessage : TWMMouse); message wm_LButtonDblClk;
public
constructor Create;
end;
var
ArchiveReports : TArchiveReports;
implementation
uses
unit1;
constructor TArchiveReports.Create;
begin
inherited Create;
pnlMain := TPanel.Create(Form1);
with pnlMain do
begin
Align := alTop;
Height := 250;
BevelWidth := 1;
Font.Name := 'Courier New';
Font.Size := 12;
Font.Style := [fsBold];
Parent := Form1;
Show;
end;
lvListView := TShellListView.Create(pnlMain);
with lvListView do
begin
Width := pnlMain.Width div 2;
Height := pnlMain.Height;
Sorted := True;
ReadOnly := False;
HideSelection := False;
TabOrder := 1;
Parent := pnlMain;
Color := clGray;
end;
end;
procedure TArchiveReports.MesDblClick (var MyMessage : TWMMouse);
begin
ShowMessage ('Хэллоу ворлд');
end;
end.
Я, конечно, писал
lvListView.OnDblClick := MesDblClick;, но меня не устраивает данный обработчик, т.к. он после DblClick вызывает какае то другое сообщение, которое открывает файл. Т.е. мне как бы "перекрыть" надо это сообщение(которое DblClick). Спасибо
AntiZOG (2009-09-05 09:35:00) [1]Как вариант локальный хук.
Пишется намного проще глобального, так как не нужно межпроцессной коммуникации
Вот пример для установки глобального. Для локального можно большую часть кода выкинуть.
http://www.delphimaster.ru/articles/hooks/index.html
Сергей М. (2009-08-31 08:41:00) [2]
> Student
С какой радости система будет поылать твоему классу сообщение wm_LButtonDblClk ? Окна-то у него нет ..
Германн (2009-08-30 01:13:00) [3]Спам :(