| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Свой пункт в системном меню! |
| Автор: Marsianin 29.5.2007, 12:58 | ||
| Только не нужно сразу посылать и бить сапогами по лицу! Я знаю как добавить этот пункт в системное меню формы, но под Delphi 2007 это НЕ работает, как ни старался:
|
| Автор: Rouse_ 30.5.2007, 08:34 |
| Ну так проверь что возвращается в Sysm и какой результат возвращают AppendMenu. ЗЫ: когда в mars notepad перетаскивание узлов наконец то появиться? ;) |
| Автор: Marsianin 30.5.2007, 23:55 |
| Проверил. GetSystemMenu выдаёт что-то отличное от 0 и каждый раз разное, явно Handle. AppendMenu выдают True, т.е. без ошибки. GetLastError выдаёт 0. Хз в чём дело. P.S. Mars Notebook...к версии 1.5 планирую перетаскивание (не пойму, зачем оно так всем нужно) |
| Автор: Rouse_ 31.5.2007, 09:42 |
| Тогда проверь (до нас еще 2007-ая не дошла, мне не на чем) не происходит ли вызов метода TWinControl.RecreateWnd после AppendMenu |
| Автор: Marsianin 31.5.2007, 23:13 |
| Разобрался. Прикол. Причём хз что с ним делать. Если стоит MainForm.BorderStyle:=bsSizeable;, то пункта в меню в системном не показывает, а если устанавливаешь MarsInstForm.BorderStyle:=bsSingle; - то всё путём. Думаю надо меню после того, как это меняешь добавлять...иду пробовать Добавлено через 4 минуты и 58 секунд Помогло Видать когда меняешь тип своего окна и Handle меняется. Зачем - хз, но факт. |
| Автор: Rouse_ 1.6.2007, 08:25 |
Вот именно при смене типа и производится RecreateWnd и все, что ты нахимичил с окном ранее, теряется |