Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизDRAG&DROP Найти похожие ветки
← →
Sergey_b (2006-10-20 08:12) [0]Всем привет.
Отцепляю панель в MouseDown сл. обр.:
if Button = mbLeft then
Panel7.BeginDrag(True);
панель плавает. Нужно, чтобы панель нельзя было закрыть. Как это сделать?
← →
MetalFan © (2006-10-20 10:14) [1]здесь телепатов нет. панель обычная(TPanel)? или тулбар(TToolBar)? каким образом можно/нельзя закрывать панель?
← →
Sergey_b (2006-10-20 10:33) [2]Обычная панель, на ней расположены тулбар и другие компоненты, которые закрывают всю площадь панели, поэтому нажимаю на тулбар и panel.begindrag... После перетаскивания панель превращается в отдельное окно с крестиком(не знаю как называется эта кнопка). Так вот, если закрыть это окошко(панель)... т.е. надо сделать так, чтобы вместо закрытия панель вставала на первоначальное место( на другую панель). Как поставить ее туда я знаю (вроде бы), а вот как ей запретить закрыватся или, хотя бы, как отслеживать ее закрытие?
← →
Elen © (2006-10-20 10:52) [3]
> Sergey_b
если закрыть это окошко(панель)
Panel.Visible:=true вернет панель на экран
← →
Sergey_b (2006-10-20 10:54) [4]
> Elen © (20.10.06 10:52) [3]
Спасибо
← →
Elen © (2006-10-20 10:54) [5]P.S.
Panel1.Parent:=form1
; вернет ее на форму (не забудте выставить координаты, а то она станет в 0,0)
← →
Sergey_b (2006-10-20 10:55) [6]А как, все-таки, отслеживать ее исчезновение?
← →
Elen © (2006-10-20 10:58) [7]
> Sergey_b
В догонку :
...
TForm1 = class(TForm)
...
procedure qq(var Msg: TMsg; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=qq;
end;
...
//********* PROCEDURE**********
procedure TForm1.qq;
//const
//Var
begin
if panel1.Visible=false then begin
Panel1.Parent:=form1;// Если панель неводима предпримем меры
panel1.Visible:=true;
end;
end;
//********* END PROCEDURE*******
...
Это вернет панель на форму когда ее "закроют"
Удачи ;)
← →
Наиль © (2006-10-20 16:31) [8]Первый раз в жизни попробывал, что такое плавующие панели.
Интересная была головоломка (на пол часа).
Вот результат:procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var
DockForm:TControl;
begin
Panel1.BeginDrag(true);
end;
procedure TForm1.MyCloser(Sender: TObject; var Action: TCloseAction);
begin
if MessageDlg("Вы уверены что хотите закрепить панель",mtWarning,mbOKCancel,0)=mrOk then Begin
// Делаем как сказала Elen
End else Action:=caNone;
end;
procedure TForm1.Panel1EndDock(Sender, Target: TObject; X, Y: Integer);
Var
DockForm:TControl;
begin
DockForm:=Panel1.Parent;
if (DockForm<>nil) and (DockForm is TCustomDockForm) then Begin
TForm(DockForm).OnClose:=MyCloser;
End;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.069 c