Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему в всех дельфи приложений не полное системное меню,


AlexEgorov ©   (2006-10-18 15:49:00) 

которое появляется при правом клике в панели задач на приложении (это там, где "Свернуть", "Переместить" и пр.).

Так вот, у дельфовых приложений нет пунктов "Переместить", "Размер" и "Развернуть".

Я нашёл решение, как их высветить: в OnCreate главной формы вызываю
GetSystemMenu(Application.Handle, True);

Все пункты теперь выдны, но не работают те, которые показались. Может кто знает решение?


MetalFan   (2006-10-19 09:00:00) [1]

хмм...


Джо   (2006-10-19 08:54:00) [2]

> [15] AlexEgorov   (19.10.06 08:37)
> Интересно с какой целью это сделано?

Когда я наткнулся на этот код (несколько лет назад), то решил, что в Борланд устроился работать вредитель :)


Anatoly Podgoretsky   (2006-10-19 08:41:00) [3]

Незабвенная фраза "Это там где часики"


AlexEgorov   (2006-10-19 08:37:00) [4]

Нашёл я код в Forms в процедуре


procedure TApplication.CreateHandle;
var
 TempClass: TWndClass;
 SysMenu: HMenu;
begin
.....
   SysMenu := GetSystemMenu(FHandle, False);
   DeleteMenu(SysMenu, SC_MAXIMIZE, MF_BYCOMMAND);
   DeleteMenu(SysMenu, SC_SIZE, MF_BYCOMMAND);
   if NewStyleControls then DeleteMenu(SysMenu, SC_MOVE, MF_BYCOMMAND);
 end;
end;


Интересно с какой целью это сделано?


Джо   (2006-10-19 03:44:00) [5]

> [13] Anatoly Podgoretsky ©   (18.10.06 22:40)
> Так в начале речь шла про системное меню, а потом про меню
> в таскбаре.

В первом же посте написано:
"Почему в всех дельфи приложений не полное системное меню, которое появляется при правом клике в панели задачна приложении  (это там, где "Свернуть", "Переместить" и пр.)".


Anatoly Podgoretsky   (2006-10-18 22:40:00) [6]

Так в начале речь шла про системное меню, а потом про меню в таскбаре.


Германн   (2006-10-18 22:29:00) [7]


> Ни в одной программе нет не полного меню, Д1 не помню.

В Д1 - меню полное.


AlexEgorov   (2006-10-18 21:34:00) [8]

Я имел ввиду именно то, что привёл в скриншоте Kolan, не полное меню на апликейшене в таскбаре


guav   (2006-10-18 21:29:00) [9]

> [0] AlexEgorov   (18.10.06 15:49)

это меню не формы, а невидимого окна Application.


> имхо, в этом месте VCL плохо продумана..

Да, плохо продумана тем, что нет лёгкого способа отключения такого поведения.


Eraser   (2006-10-18 20:49:00) [10]

> [0] AlexEgorov   (18.10.06 15:49)

почему - ответ [1].
имхо, в этом месте VCL плохо продумана.. примерно отсюдого же растут грабли, проблем, которые начнут озникать, когда понадибится добавить доп. кнопку на таск бар.


Kolan   (2006-10-18 20:07:00) [11]

Ну вот как-бы так:
http://www.ksoftware.narod.ru/Menu.jpg


Kolan   (2006-10-18 20:03:00) [12]


> У тебя много чего наблюдается.

Ну это к делу не относится :)


> Ни в одной программе нет не полного меню, Д1 не помню.

Или это не то меню или пираты гады :)


Anatoly Podgoretsky   (2006-10-18 19:58:00) [13]

У тебя много чего наблюдается. Ни в одной программе нет не полного меню, Д1 не помню.


Kolan   (2006-10-18 19:49:00) [14]


> Как ты думаешь, про что я говорю?

Не знаю. У меня в D7 и 2006 фифект наблюдается...


Anatoly Podgoretsky   (2006-10-18 19:41:00) [15]

Как ты думаешь, про что я говорю?


Kolan   (2006-10-18 19:39:00) [16]


> У меня ни в одной из версий Дельфи, подобный фефект не наблюдается.

Не в самой среде, а в проектах сделанных в ней... У меня присутствует...

AlexEgorov
Закрыть есть, а больше ничего не надо...


Anatoly Podgoretsky   (2006-10-18 19:07:00) [17]

У меня ни в одной из версий Дельфи, подобный фефект не наблюдается.


sniknik   (2006-10-18 16:12:00) [18]

> Почему в всех дельфи приложений не полное системное меню,
потому, что лишнее специально удаляют, ищи функцию DeleteMenu гдето в методах Application (модуль Forms).

> Может кто знает решение?
оставь как есть.


Наверх

Титульная страница Поиск, карта сайта Написать письмо