Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
D6.API.WM_SYSCOMMAND
|
|||
|---|---|---|---|
|
#18+
Есть приложение exe. Есть модули DLL, которые загружает EXE. Модули содержат формы. Форма рриложения EXE занимает верхнюю часть экрана. Для того чтобы формы в DLL максимизировались и занимали оставшуюся часть экрана используется следующий код: procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; ..... procedure TBaseUiForm.WMSysCommand(var Message: TWMSysCommand); var aRect: TRect; begin inherited; if Message.CmdType = SC_MAXIMIZE then begin GetWindowRect(Application.Handle, aRect); Top := aRect.Bottom; Height := Screen.Height - aRect.Bottom; end else inherited; end; где Application.Handle в DLL = MainForm.Handle из EXE Формы, по нажатию кнопки "Максимизировать" принимают правильные геометрические размеры (относительно главного окна), но происходит мигание форм (видно что они сначала максимизируются на полный экран, а потом в указаный размер) Почему так происходит? Хочется создать поведение как в IDE Delphi, когда редактор кода максимизируется относительно окна с палитрой компонентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 09:44 |
|
||
|
D6.API.WM_SYSCOMMAND
|
|||
|---|---|---|---|
|
#18+
Попробуй убрать первый inherited; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 10:48 |
|
||
|
D6.API.WM_SYSCOMMAND
|
|||
|---|---|---|---|
|
#18+
Убрал: вот код procedure TBaseUiForm.WMSysCommand(var Message: TWMSysCommand); var aRect: TRect; begin if Message.CmdType = SC_MAXIMIZE then begin GetWindowRect(Application.Handle, aRect); Top := aRect.Bottom; Height := Screen.Height - aRect.Bottom; Width := Screen.Width; Left := 0; end else inherited; end; Разворачивается как надо. но не устанавливается иконка "Восстановить". в правом верхнем углу формы. А также двойной клик по заголовку формы все равно разворачивает ее на весь экран. Как правильно обрабатывать это сообщение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 11:14 |
|
||
|
D6.API.WM_SYSCOMMAND
|
|||
|---|---|---|---|
|
#18+
Попробуй так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 14:41 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32126347&tid=2118794]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
39ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 255ms |
| total: | 418ms |

| 0 / 0 |
