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

Вниз

Недопустимый дескриптор окна   Найти похожие ветки 

 
anbezr   (2003-04-28 13:23) [0]

Привет!
с помощью PostMessage посылаю собщение объекту TCustomControl. при посылке возникает сабж, хотя в отладчике посмотрел, что все парамеры правильные - hWnd, в частности.
что это???


 
Skier ©   (2003-04-28 13:28) [1]

>anbezr


> с помощью PostMessage посылаю собщение объекту TCustomControl.
> при посылке возникает сабж,

1) Код покажи.
2) Есть ещё TControl.Perform(...) Может устроит ?


 
Digitman ©   (2003-04-28 13:33) [2]

объект класса TCustomControl не имеет св-ва hWnd


 
Skier ©   (2003-04-28 13:36) [3]

>Digitman
TWinControl - TCustomControl


 
anbezr   (2003-04-28 13:42) [4]

при создании:
SM_EVENTRAISED := RegisterWindowMessage(PChar(SM_EVENTRAISED_STR));

когда нужно посылать:
if not PostMessage(fReceiverWnd, SM_EVENTRAISED, EventNo, Param) then ShowSysMessage("");
fReceiverWnd - правильная - проверял отладчиком.


 
Digitman ©   (2003-04-28 13:46) [5]


> Skier


но о TWinControl в вопросе речи не идет ! Мало ли у TCustomControl наследников разных !


 
Zz_   (2003-04-28 13:49) [6]


fReceiverWnd.Handle ?


 
Skier ©   (2003-04-28 13:50) [7]

>Digitman

> но о TWinControl в вопросе речи не идет !

Не идёт ! Но ты так категорично. :)


 
anbezr   (2003-04-28 13:55) [8]

Digitman © (28.04.03 13:46)

потому и не идет, что TcustomControl - наследник TWinControl


 
Skier ©   (2003-04-28 13:58) [9]

>anbezr
А HandleAllocated что тебе вернёт перед посылкой сообщения ?


 
anbezr   (2003-04-28 14:04) [10]

false


 
Skier ©   (2003-04-28 14:05) [11]

>anbezr (28.04.03 14:04)
"Ну вот и вот - больной зуб !"
Добивайся того чтобы было True


 
anbezr   (2003-04-28 14:11) [12]

а что, когда я делаю
TWinControl.Hide;
его Handle уничтожается, а при
TWinControl.Show;
создается вновь?


 
Skier ©   (2003-04-28 14:12) [13]

>anbezr
А при чём тут Hide и Show ?


 
anbezr   (2003-04-28 14:18) [14]

а дело в том, что Handle принимающего, посылающий объект запоминает при создании принимающего. Сразу же делается Hide и возникает ошибка. в случае, если Hide не делать, то все нормально.


 
Skier ©   (2003-04-28 14:26) [15]

>anbezr

> что Handle принимающего, посылающий объект запоминает при
> создании принимающего.

Тебе самому-то сие понятно ?


 
anbezr   (2003-04-28 14:35) [16]

если предположить, что при Hide и Show Handle обновляется, то, да


 
Digitman ©   (2003-04-28 14:44) [17]


> anbezr


Зайди в раздел WinApi, там не так уж давно <Игорь Шевченко> "разжевывал" про "уникальность окон", в частности - про механизм метода TWinConthol.RecreateWnd.

Сдается мне, получаешь ты "по лбу" именно этими "граблями" ))

цитата из хэлпа :

For example, to reflect a change in the border style of an edit box, the window for the control must be recreated.

вероятно, в обработчиках OnHide/OnShow у тебя происходит подобная манипуляция с целевым контролом


 
anbezr   (2003-04-28 14:57) [18]

да, каждый раз при показе формы обновляю Handle - работает.
Спасибо



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

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

Наверх




Память: 0.5 MB
Время: 0.018 c
3-34325
Caution
2003-04-21 22:42
2003.05.12
BDE & SQL


1-34439
ksushishka
2003-04-25 18:54
2003.05.12
Работа с документами Excel


14-34549
Sword-Fish
2003-04-23 13:57
2003.05.12
Отлов окон


3-34346
YDV
2003-04-18 13:50
2003.05.12
TOracleSession опасна для сервера !!!


3-34347
Chery
2003-04-22 13:44
2003.05.12
Догрузка данных из архива в текущую БД