|
Вопрос # 1 275/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
В MDI приложении есть родительская форма и дети...
Как убрать рамку у родительской формы?
у детей можно сделать вот так :
Params.Style := Params.Style and (not WS_CAPTION and not WS_BORDER);
но для родительской формы это не помогает, как и bsNone.
 |
Вопрос задал: Виталий (статус: 2-ой класс)
Вопрос отправлен: 19 января 2008, 18:26
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 22 января 2008, 09:35; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 20 января 2008, 01:08 [#1]:
Попробывал, работает. правда делфи 2007.
Хотя мне не понятно, зачем подобный "изврат". С другой стороны в делфи реализиация MDI форм не совсем полная, например, родительская MDI форма обязана быть главной. Также стоит подумать о том, почему Майкрософт также не рекомендует их использовать.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Виталий (статус: 2-ой класс), 20 января 2008, 09:39 [#2]:
ну я работаю в Delphi 7 и в Windows Vista...
кстати а возможно ли что Windows сам не даёт убрать рамку?
|
|
Виталий (статус: 2-ой класс), 20 января 2008, 09:43 [#3]:
скажите пожалуста а какой Delphi самый удобный и функциональный?
мне по душе 7, но ведь он довольно старый....
а есть какие-нибудь другие способы?
|
|
Виталий (статус: 2-ой класс), 20 января 2008, 10:17 [#4]:
вот нашёл на одном форуме про эту тему, но не могу понят как это использовать
оказалось эта рамка не у главного окна а у дополнительного с классом MDIClient
CODE
case FormStyle of
fsMDIForm:
begin
with ClientCreateStruct do
begin
idFirstChild := $FF00;
hWindowMenu := 0;
if FWindowMenu <> nil then hWindowMenu := FWindowMenu.Handle;
end;
// вот это окно. просто надо убрать 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);
{$IFDEF LINUX}
FClientInstance := WinUtils.MakeObjectInstance(ClientWndProc);
{$ENDIF}
{$IFDEF MSWINDOWS}
FClientInstance := Classes.MakeObjectInstance(ClientWndProc);
{$ENDIF}
FDefClientProc := Pointer(GetWindowLong(FClientHandle, GWL_WNDPROC));
SetWindowLong(FClientHandle, GWL_WNDPROC, Longint(FClientInstance));
end;
|
|
Виталий (статус: 2-ой класс), 20 января 2008, 11:14 [#5]:
оказывается это часть кода из forms.pas, но чем это может помочь?
|
|
Вадим К (статус: Академик), 22 января 2008, 09:35 [#6]:
О Виста... в ней много разных "загогулин". Оффициально с ней совместима только 2007 делфи. остальные - нет.
Какой делфи лучше и удобней? очень сложный вопрос. Но поработав в 2005-2007 делфи, поняв что такое рафакторинг, например, в 7 чувствуешь себя неуютно
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|