Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как убрать кнопку закрытия пристыкованной формы?


Данил ©   (2002-12-04 12:14:00) 

Или как пристыковать форму так, чтобы не было возможности отсыковаться, переместить и закрыть ее?
Спасибо.


Рыжик   (2002-12-05 07:34:00) [1]

А OnUnDock не происходит даже если форма уничтожается при закрытии.


Рыжик   (2002-12-05 07:11:00) [2]

Panel.OnUnDock - просто отстыковка
Чтобы отловить закрытие оно не подходит, так как форма может остаться пристыкованной, но только невидимой. Можно проверять
HostDockSite=Panel в Form.OnClose - это и будет требуемое событие.
Ещё можно переопределить DoRemoveDockClient для панели, но опять же оно будет срабатывать при закрытии только если форма уничтожается, а не делается невидимой (т.е. для OnClose Action:=caFree)


Данил   (2002-12-04 15:57:00) [3]

To Рыжик:
А не подскажешь ли мне, о прекраснейшая из приекрасных, как сделать так, чтобы когда закрываешь пристыкованную форму нажатием на ее кнопочку с крестиком :), можно было изменить размер панельки , ее содержащей, и сделать еще кое-какие действия? Короче надо как-то отследить это событие.


Данил   (2002-12-04 15:42:00) [4]

Во! О чем я и говорил! То что доктор прописал... :))
Большое русское мерси!


Рыжик   (2002-12-04 13:55:00) [5]

Для панельки, на которую пристыковываем форму OnDockDrop:
procedure TForm1.Panel1DockDrop(Sender: TObject; Source: TDragDockObject;
X, Y: Integer);
begin
Source.Control.Align:=alClient;
end;

После этого форму можно отстыковать только програмно.


Данил   (2002-12-04 12:45:00) [6]

Эта можна, просто я думал, что такое дело должно быть предусмотрено.
Спасибо тебе, добр человек!


Skier   (2002-12-04 12:37:00) [7]

>Данил

А флажок у формы не можешь добавить ?

TFormDockType = (...) перечислимый тип (например)

TYourForm = class(...)
public
property FormDockType : TFormDockType...
end; //TYourForm


Данил   (2002-12-04 12:34:00) [8]

Спасбо, конечно, но это мне не очень подходит :(
У меня эта форма используется в нескольких местах, в одном мне нужно чтобы она нормально работала (как при.. так и отстыковывалась и т.д.), в другом нужно просто статически встроить ее в панель и использовать только для отображения результатов.


Skier   (2002-12-04 12:27:00) [9]

>Данил

1) ...чтобы не было возможности переместить...

procedure TYourForm.WMSysCommand(var Message : TWMSysCommand);
begin
//игнорируем перемещение формы.
if (Message.CmdType and $FFF0) = SC_MOVE then begin
Message.Result := 0;
Exit;
end; //if
inherited;
end;

2) ...чтобы не было возможности закрыть ...
TForm.OnCloseQuery(...)


Данил   (2002-12-04 12:20:00) [10]

Есть панелька, на нее пристыковываю (Dock) фомочку. Хочу, чтобы пользователь не мог с формочкой ничего делать из вышеперечисленного.


Skier   (2002-12-04 12:16:00) [11]

>Данил

> пристыкованной формы

Что бы это значило ?
Немного подробней, плиз...


Наверх

Титульная страница Поиск, карта сайта Написать письмо