Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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 чувствуешь себя неуютно
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:03
Выполнено за 0.03 сек.