информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСетевые кракеры и правда о деле ЛевинаВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
 Notepad++ полгода раздавал зараженные... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Pascal] Re: Два вопроса по handle под Delphi 20.01.02 23:52  Число просмотров: 1315
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
> Народ как нормально найти все дочерние handle's данного
> handle на Delphi
> - это был 1 вопрос
В Win32 у handles нет иерархии, т.е. отношений parent-child. Не ясно что ты собираешся закрывать, если просто все handles процесса, то это почти равноценно закрытию самого процесса.

> И второй - Как цевилизованно закрыть чужой объект (destory)
> так, чтобы окно - его parent не накрывалось.?????????????
У окна должна быть "оконная процедура" обрабатывающая сообщения, в часности WM_PAINT. Если ты разрушишь объект (экземпляр класса) соответствующий окну, то оконная процедура runtime Delphi не сможет работать. В принципе можно "подставить" другую процедуру, но окно все равно будет лишено функциональности, от него останется только внешний вид.

Совершенно не ясно для чего это надо...
<programming>
[Pascal] Два вопроса по handle под Delphi 20.01.02 19:33  
Автор: Mikle Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Народ как нормально найти все дочерние handle's данного handle на Delphi
- это был 1 вопрос

И второй - Как цевилизованно закрыть чужой объект (destory) так, чтобы окно - его parent не накрывалось.?????????????


Mikle
[Pascal] Два вопроса по handle под Delphi 21.01.02 18:03  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> Народ как нормально найти все дочерние handle's данного
> handle на Delphi
> - это был 1 вопрос

По видимому тебя интересует EnumChildWindows
[Pascal] Два вопроса по handle под Delphi 21.01.02 00:19  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> И второй - Как цевилизованно закрыть чужой объект (destory)
> так, чтобы окно - его parent не накрывалось.?????????????

Попробуй посылать WM_CLOSE родителю окна, только хэндл укажи не родительского окна, а дочернего.
[win32] не сработает, см. описание wm_close в msdn 21.01.02 00:45  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
[win32] не сработает, см. описание wm_close в msdn 21.01.02 00:53  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
Про wm_close я погорячился. Если речь идет о родителе-контейнере, причем как классе Дельфы, то дочернее окно прибивать без извещения об этом родителя нельзя - завалится аппликация. Основная идея моего совета была в следующем: посылать родительскому окну извещение о том, что дочернее окно прекратило существование. В классах Дельфы сообщения для дочерних окон проходят через оконную функцию родителя-контейнера, поэтому я и предложил послать wm_close родителю, но хэндл указать дочерний.
[Pascal] Re: Два вопроса по handle под Delphi 20.01.02 23:52  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
> Народ как нормально найти все дочерние handle's данного
> handle на Delphi
> - это был 1 вопрос
В Win32 у handles нет иерархии, т.е. отношений parent-child. Не ясно что ты собираешся закрывать, если просто все handles процесса, то это почти равноценно закрытию самого процесса.

> И второй - Как цевилизованно закрыть чужой объект (destory)
> так, чтобы окно - его parent не накрывалось.?????????????
У окна должна быть "оконная процедура" обрабатывающая сообщения, в часности WM_PAINT. Если ты разрушишь объект (экземпляр класса) соответствующий окну, то оконная процедура runtime Delphi не сможет работать. В принципе можно "подставить" другую процедуру, но окно все равно будет лишено функциональности, от него останется только внешний вид.

Совершенно не ясно для чего это надо...
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach