Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
[C++] Простой вопрос, а инфы дома... 14.04.03 15:15 Число просмотров: 975
Автор: Tamas Статус: Member
|
> а я на работе ... > Простой пример перехвата сообщения на дельфе, plz
а прокакие сообшения собствено идет речь ???
|
<programming>
|
Простой вопрос, а инфы дома... 14.04.03 13:38
Автор: ASJinx Статус: Незарегистрированный пользователь
|
а я на работе ...
Простой пример перехвата сообщения на дельфе, plz
|
|
Что даже help не работает? 14.04.03 16:39
Автор: Cyril <sc> Статус: Member
|
> а я на работе ... > Простой пример перехвата сообщения на дельфе, plz
type
TTextBox = class(TCustomControl)
private
procedure WMChar(var Message: TWMChar); message WM_CHAR;
...
end;
implementation
....
procedure TTextBox.WMChar(var Message: TWMChar);
begin
if Chr(Message.CharCode) = #13 then
ProcessEnter
else
inherited;
end;
|
| |
Похоже у меня лыжи не едут :(((( 15.04.03 11:23
Автор: ASJinx Статус: Незарегистрированный пользователь
|
Допусти у меня следующее
...
type
TFignia = class(TShellListView)
protected
procedure DBC(var msg: TWMMouse); message wm_LButtonDblClk;
end;
....
implementation
procedure TFignia.DBC(var msg: TWMMouse);
begin
showmessage('aaaa');
end;
Я так понимаю, что когда я дважды щелкаю по VCL - TShellListView, то должно выскочить 'aaaa'. Но того нет. Меняем TShellListView на ТCustom... эффект тотже.
Если тоже самое сделать в родном классе формы, т.е.
type
TForm1 = class(TForm)
... // всякие компоненты и т.д.
protected
procedure DBC(var msg: TWMMouse); message wm_LButtonDblClk;
end;
...
procedure TForm.DBC(var msg: TWMMouse);
begin
showmessage('aaaa');
end;
...
То все работает, но только если щелкаем по форме.
Мне надо для TShellListView, или вообще для всего, куда нибудь щелкаем и перехват.
На возможный вопрос почему я не юзаю события отвечаю, что например мне надо проверить popup, системный он или нет, а без перехвата никак ...
|
| | |
Так и должно быть, весна на дворе ;-) 15.04.03 18:45
Автор: Cyril <sc> Статус: Member
|
> ...skipped... > без перехвата никак ... странно, написал маленький примерчик, все работает
хотелось бы узнать поподробней как создавал объект класса
TShellListView у меня нет( delphi5) поэтому точно проверить не могу
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
TMyListBox = class(TCustomListBox)
procedure DBC(var msg: TWMMouse); message WM_LBUTTONDBLCLK;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
ListBox : TMyListBox;
begin
ListBox := TMyListBox.Create(self);
Listbox.Parent := self;
end;
{ MyListBox }
procedure TMyListBox.DBC(var msg: TWMMouse);
begin
ShowMessage('AAA');
end;
---
|
| | | |
Так и должно быть, весна на дворе ;-) 16.04.03 10:46
Автор: ASJinx Статус: Незарегистрированный пользователь
|
Знаешь, таже самая фигня, но не работает.
По крайней мере с компанентом TShellListView я разобрался. Пришлось править сам компанент, хоть он и борлондовский но так глючно написан. У меня messagи в нем не перехватывались, т.к. они в нем перехватывались раньше, так что я в нем все сделал, что мне надо и перекомпилил (слава богу там демосы есть). Хотя таже самая фигня с ListBox-ом не работает. Может быть Дельфа глючная? У меня 6-я. А TShellListView гдето на панели компанентов в конце валяется, я его там случайно заметил (это чтото вроде рабочего стола, но глюкавое). Есть ли он в 5-ом я не знаю.
|
|
[C++] Простой вопрос, а инфы дома... 14.04.03 15:15
Автор: Tamas Статус: Member
|
> а я на работе ... > Простой пример перехвата сообщения на дельфе, plz
а прокакие сообшения собствено идет речь ???
|
| |
Об обычных виндовозовскиз 14.04.03 16:16
Автор: ASJinx Статус: Незарегистрированный пользователь
|
WM сообщения перед вызовом API
|
|
|