Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

динамическое меню "Окно"

434
19 августа 2013 года
Poltos
105 / / 18.08.2004
Добрый день!

В большой существующий проект (не MDI), потребовалось разработать меню "Окно", для быстрого переключения между окнами. Я написал простенький класс, который получает список всех дочерних окон моего приложения и добавляет пункты в меню "Окно".
Пункты добавляются, отображаются, все нормально.
Встал вопрос, как сделать, что бы меню обновлялось автоматически? К сожалению не у TMainMenu, не у TMenuItem, нету подходящих событий. Если повесить на Onclick, то меню ведет себя не так как хотелось, оно не открывается.

Посоветуйте, что-нибудь?!
434
19 августа 2013 года
Poltos
105 / / 18.08.2004
Можно ли в Приложении перехватывать системные события, такие как "Создание окна, Уничтожение окна"? Если да, то помогите кусочком кода?)
326
19 августа 2013 года
sadovoya
757 / / 19.11.2005
Не надо api. Есть-же события формы.
434
19 августа 2013 года
Poltos
105 / / 18.08.2004
OnCreate - оно же только при создании самого себя, а мне дочерние окна нужны
78K
20 августа 2013 года
EsEr
20 / / 17.02.2013
а запоминание количества открытых окон в переменной? типа Открылось +1, закрылось -1. Или если они дочерние от одного окна, должна быть функция получения индентификаторов от родительского окна, и потом уже проверить открыто окно или нет.
434
23 августа 2013 года
Poltos
105 / / 18.08.2004
Добавлять пункты в меню я умею, о чем писал в начале темы, вопрос стоит как его динамически обновлять, без явных манипуляций пользователя над этим меню.

Я пришел к выводу, что нужно вешать на таймер.
327
23 августа 2013 года
UserNet2008
748 / / 03.04.2010
Popup - событие or focus на объект or MouseMove, не знаю в Delphi есть типа такого.
434
23 августа 2013 года
Poltos
105 / / 18.08.2004
Цитата: UserNet2008
Popup - событие or focus на объект or MouseMove, не знаю в Delphi есть типа такого.



Именно, на TMainMenu и TMenuIndex нету :) ! в этом то и проблема)

8
23 августа 2013 года
mfender
3.5K / / 15.06.2005
Вот этот объект свой инкапсулируй в наследыша TMainMenu, и повесь в него обработчик событий открытия и скрытия окон. OnShow и OnHide исполняются всегда.
327
23 августа 2013 года
UserNet2008
748 / / 03.04.2010
Я знал что Delphi это big-shit но не до такой степени.
В Delphi хоть оператор Close есть , если есть закрывайте Delphi и в ларёк за пивом.
Ни какая в Delphi инкапсуляция объектов уже не поможет есть ыще borland c++ так там пивом точно не отделаться.
8
23 августа 2013 года
mfender
3.5K / / 15.06.2005
Цитата: UserNet2008
Я знал что Delphi это big-shit но не до такой степени.
В Delphi хоть оператор Close есть , если есть закрывайте Delphi и в ларёк за пивом.
Ни какая в Delphi инкапсуляция объектов уже не поможет есть ыще borland c++ так там пивом точно не отделаться.


Не тупите, юноша. Борланд почил в бозе давно, и после него были Inprice, ещё кто-то, и теперь Embarcadero. Ваши познания впечатляют. А у нас теперь FireMonkey. Дрочите на скверный Борланд дальше.

327
23 августа 2013 года
UserNet2008
748 / / 03.04.2010
Цитата:
Не тупите, юноша. Борланд почил в бозе давно, и после него были Inprice, ещё кто-то, и теперь Embarcadero. Ваши познания впечатляют. А у нас теперь FireMonkey. Дрочите на скверный Борланд дальше.


Мне своё время хватило borland c++ я с тех пор вообще не смотрю на выпуски borland. Пусть Inprice, пусть Embarcadero or FireMonkey тоже говно or теже яйца только впрофиль. После того когда я обратился в службу поддержки мол так и так. Мне заивили ,что у меня пиратская копия и куй до копейки. Я это дело не пропустип и подал в суд. Вот тут borland забегал, что мол новый работник не туда смотрел. Свой интерес я выграл и даже больше.()

P.S
С трудом нашел примерный перевод - Дрочите
Так что это Вы Дрочите на пиратские Inprice, пусть Embarcadero or FireMonkey

434
23 августа 2013 года
Poltos
105 / / 18.08.2004
Плохому танцору - яйца мешают. В свое время Дельфи был, очень даже ничего язык, да он отстал от своих коллег, но все так же остается довольно мощной средой разработки, да еще и с поддержкой в лице Embarcadero!
8
23 августа 2013 года
mfender
3.5K / / 15.06.2005
Цитата: UserNet2008

Так что это Вы Дрочите на пиратские Inprice, пусть Embarcadero or FireMonkey


Мне вот всё таки интересно, какими такими C++ вы изволите пользоваться?

465
24 августа 2013 года
QWERYTY
595 / / 25.03.2012
Ребятки, вы о чём спор развели? Кто круче делфи или с? Человеку нужна помощь конкретно по делфи, и есть предположения что ему глубоко наплевать в этой ситуации кто круче.


Перехват CreateWindow \ DestroyWindow пробовали? При создании окна вы сразу (до того как оно отобразится) получите внушительное количество информации о нём.
Я видел что компонент TMainMenu достаточно дубовый(в плане событий), и возможно по простому выбраться не получится.
Я так делал когда внедрялся в программку на с++ и мне нужны были события создания уничтожения окон.
8
24 августа 2013 года
mfender
3.5K / / 15.06.2005
Думаю, нужно начать с изучения теории: что есть триггеры, и есть слушатели событий. А потом уж всё остальное.
465
24 августа 2013 года
QWERYTY
595 / / 25.03.2012
Можно также хуком WHCBT, в плане написания кода довольно просто.
Установка хука, и одна функция обратного вызова в которой всё заполняется и удаляется когда нужно.
Но с хуком у меня были глюки. Программа создавала окно и всё нормально обрабатывалось, а вот когда это (созданное) окно создавало диалог вся программа накрывалась медным тазом.
Из за этого и использовал перехват функций CreateWindow \ DestroyWindow, и всё чётко пахало.
8
24 августа 2013 года
mfender
3.5K / / 15.06.2005
Да угомонись. Окна создаются в потоке приложения. Соответствующие события создаются. Эти события можно слушать и производить манёвры в MainMenu.
465
24 августа 2013 года
QWERYTY
595 / / 25.03.2012
Цитата: mfender
Да угомонись. Окна создаются в потоке приложения. Соответствующие события создаются. Эти события можно слушать и производить манёвры в MainMenu.



Ладно, ладно )))

Это я ещё дописывал не видя твоего сообщения.
Я и не спорю насчёт прослушивания. Вариантов масса как заставить обновляться меню.

8
24 августа 2013 года
mfender
3.5K / / 15.06.2005
Есть даже рецепты от производителей ))))
327
24 августа 2013 года
UserNet2008
748 / / 03.04.2010
Цитата: mfender
Цитата: UserNet2008

Так что это Вы Дрочите на пиратские Inprice, пусть Embarcadero or FireMonkey


Мне вот всё таки интересно, какими такими C++ вы изволите пользоваться?


Если для простого пользывателя думаю из продуктов free VS Express.
Для меня смотря для каких задач, здесь можно найти много С-подобный языков
И что-бы не думали не правильно я не знаю все эти языки из списка.

Цитата: Poltos
Плохому танцору - яйца мешают. В свое время Дельфи был, очень даже ничего язык, да он отстал от своих коллег, но все так же остается довольно мощной средой разработки, да еще и с поддержкой в лице Embarcadero!


Здесь есть толика правды только не яйца , а спина. И в сентябре будут открывать спину и менять что-то на новое.
Так что танцор из меня не какой. Как и не очень понятно моё будущее.

Всем Удачи.
С уважением UserNet2008 => Пользователь NET «пробел» «Backspace»

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог