Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пользовательские компоненты (Delphi), Пользовательские компоненты (TWinContro) 
V
    Опции темы
klbforummail
Дата 6.5.2015, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.5.2012

Репутация: нет
Всего: нет



Всем привет. Тема, наверно, старая, но тем не менее для многих актуальна. Разрабатываю компонент TWindowTab (панелька с кнопками для отображения нужного окна). Нужно чтобы при создании любого немодального окна на панельке кнопка добавлялась и при уничтоженни - уничтожалась. Для этого через SetWindowLong переопределил оконную процедуру формы, на котором разположена панелька и там обробатываю сообщения. Тут возникла проблема - когда форма, на которой разположена панель, меняет стиль из fsNormal на fsMdiForm, то приходит сообщение wm_Destroy, далее уничтожается Handle окна и создаются новый Handle и ClientHandle. Поскольку Handle окна изменен, то в мою оконную процедуру формы больше сообщений (в частности wm_Create) не приходит. В какой момент времени (на какое событие или сообщение) мне взять ClientHandle формы, чтобы снова переопределить оконную процедуру формы ?

Это сообщение отредактировал(а) klbforummail - 6.5.2015, 16:09
PM MAIL   Вверх
Lipetsk
  Дата 6.5.2015, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в форме ;)
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.1.2009
Где: Липецк

Репутация: 2
Всего: 5



А почему вы не пользуетесь событиями типа onCreate, onDestroy?
PM   Вверх
klbforummail
Дата 6.5.2015, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.5.2012

Репутация: нет
Всего: нет



Цитата(Lipetsk @ 6.5.2015,  17:08)
А почему вы не пользуетесь событиями типа onCreate, onDestroy?

Событиями формы или компонента ?

Добавлено через 5 минут и 19 секунд
Мне по любому нужно обрабатывать сообщения для того чтобы определить, что формы, связанные с моими кнопками, создаются или уничтожаются...
PM MAIL   Вверх
Lipetsk
Дата 6.5.2015, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в форме ;)
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.1.2009
Где: Липецк

Репутация: 2
Всего: 5



Когда они создаются вызывается onCreate, когда удаляются- onDestroy. Зачем усложнять?
PM   Вверх
klbforummail
Дата 6.5.2015, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.5.2012

Репутация: нет
Всего: нет



Цитата(Lipetsk @ 6.5.2015,  20:19)
Когда они создаются вызывается onCreate, когда удаляются- onDestroy. Зачем усложнять?

Я хочу, чтобы положив компонент на главную форму, мне в приложении не надо было вызывать еще какие-то его методы. Что бы компонент умел сам все делать...
PM MAIL   Вверх
klbforummail
Дата 8.5.2015, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.5.2012

Репутация: нет
Всего: нет



Разобрался. Использую хуки. 
PM MAIL   Вверх
Lipetsk
Дата 8.5.2015, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в форме ;)
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.1.2009
Где: Липецк

Репутация: 2
Всего: 5



Теперь нужна будет dll к компоненту
Не понимаю, почему нельзя было сделать стандартными средствами. Вы же окна как-то связываете с компонентом, в функции привязки и настраивали бы события
PM   Вверх
klbforummail
Дата 10.5.2015, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.5.2012

Репутация: нет
Всего: нет



Цитата(Lipetsk @ 8.5.2015,  09:38)
Теперь нужна будет dll к компоненту
Не понимаю, почему нельзя было сделать стандартными средствами. Вы же окна как-то связываете с компонентом, в функции привязки и настраивали бы события

никакой dll не нужно. Я использую хук на процесс.
На счет событий.  Измените несколько раз стиль окна из fsNormal в fsMdiForm и наоборот и поймете почему я отказался от событий.

Это сообщение отредактировал(а) klbforummail - 10.5.2015, 12:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0872 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.