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

Вниз

Ошибка при обращении к свойствам TMessage   Найти похожие ветки 

 
plaha999 ©   (2002-12-10 01:46) [0]

Уважаемые мастера, почему происходит ошибка, когда я в своем приложении реагирую на событие посланное мне из моей DLLки с HOOKом. Вот текст процедурки:

const
WM_MOUSEACTIVE = WM_USER + 133;

...

procedure MouseActive(var Msg: TMessage); message WM_MOUSEACTIVE;

...

procedure TfrmNetAdmin.MouseActive(var Msg: TMessage);
begin
if Msg.WParam=GetDesktopWindow then {<- EAccessViolation}
Beep;
end;


 
Digitman ©   (2002-12-10 11:40) [1]

вот эта строчка

procedure MouseActive(var Msg: TMessage); message WM_MOUSEACTIVE;

надеюсь, не сама по себе ? она фигурирует в декларации класса TfrmNetAdmin ?


 
SottNick ©   (2002-12-10 12:01) [2]

2 Digitman
конечно фигурирует
она от туда сюда и процетирована...

2 plaha999
в этой части кода ошибки возникнуть не может
....разве что на "BEEP;" :o)
что за ошибка?
в какой строке?
в DLLке или в EXEшнике?


 
plaha999 ©   (2002-12-10 13:26) [3]

в EXEшние, а ошибка EAccessViolation, и происходит она не из-за Beep, он там так, чисто для примекра стоит...


 
Digitman ©   (2002-12-10 13:51) [4]

в "EXEшнике", не в "EXEшнике")... да по-барабану - где !

Ничем "EXEшник" от "DLLшника" не отличается (по большому счету), кроме тонкостей механизма загрузки.

Приведи декларацию класса TfrmNetAdmin




 
plaha999 ©   (2002-12-10 14:34) [5]

type
TfrmNetAdmin = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
procedure MouseActive(var Msg: TMessage); message WM_MOUSEACTIVE;
public
{ Public declarations }
end;



 
Digitman ©   (2002-12-10 14:39) [6]

ок.

Access violation at address XXXXX ...

Чему равен XXXXX ? Действительно ли XXXXX - это run-time-адрес строки "if Msg.WParam=GetDesktopWindow then ..." ?

Брейкпойнт ставил на этой строке ? Ловил его ? Контролировал ссылку на Msg ?


 
plaha999 ©   (2002-12-10 14:55) [7]

Да!!! Все проходит нормально, если сообщение посылает моя форма, но если кто-то другой, тогда возникает ошибка...


 
Digitman ©   (2002-12-10 15:17) [8]

Я тебя спросил, Контролировал ты ссылку на Msg в момент брейкпойнта на этой строчке при условии, что "если кто-то другой" ? Чему она равна ?


 
plaha999 ©   (2002-12-10 15:44) [9]

ОК! С этим разобрался, спасибо :-)



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
14-87022
grab3
2003-01-10 17:22
2003.01.27
Не может открыть PWLку.


3-86656
Ahmad K
2003-01-05 03:10
2003.01.27
Из .txt в .db или представление базы ввиде TXT


1-86807
Inan61
2003-01-18 19:13
2003.01.27
Как программно удалить Glyph у SpeedButton?


14-87064
Tsr
2003-01-07 21:55
2003.01.27
Как добавить в TTreeView доп. параметр ?


3-86675
dkok
2003-01-06 15:17
2003.01.27
Есть ли окраничения на процедуры Interbase?