в bsDialog, то невозможно использовать
В FORMS.PAS зловредная ошибка!!! Если Borderstyle установить в bsDialog, то невозможно использовать biHelp-BorderIcon. Почему? Ответ в процедуре CreateParams в строке:
|
|
Icons := Icons * [biSystemMenu];
|
Данная строка фильтрует все, кроме biSystemMenu. Поэтому флаг biHelp и становится здесь недоступен! Правильная строка должна быть такой:
|
|
Icons := Icons * [biSystemMenu, biHelp];
|
Я думаю что отчасти проблема заключается в несоответствии с Win95-MDI-Parent-Form (родительской MDI формы). Родительская форма клиента (Client Parentform) не в 3D (WS_EX_CLIENTEDGE). Любое другое Win95-MDI-приложение имеет 3D-эффект. Решение данной проблемы очень простое. ClientHandle в процедуре CreateWnd должен генерироваться с CreateWindowEx вместо CreateWindow, а ExtendedStyle WS_EX_CLIENTEDGE должен устанавливаться следующим образом:
|
|
FClientHandle := Windows.CreateWindowEx(WS_EX_CLIENTEDGE,'MDICLIENT', nil, WS_CHILD or WS_VISIBLE or WS_GROUP or WS_TABSTOP or WS_CLIPCHILDREN or WS_HSCROLL or WS_VSCROLL or WS_CLIPSIBLINGS or MDIS_ALLCHILDSTYLES, 0, 0, ClientWidth, ClientHeight, Handle, 0, HInstance, @ClientCreateStruct);
|
Я надеюсь эта ошибка будет устранена уже в первой заплатке к Delphi2.0.
- Rolf Frei
[000959]
Содержание раздела