Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.053 c
1-1161688783
SlavaK
2006-10-24 15:19
2006.12.03
Делал ли кто подобный компонент или просто класс


15-1163163560
koha
2006-11-10 15:59
2006.12.03
Модератору !!!


8-1145530172
Uran
2006-04-20 14:49
2006.12.03
BMP в GIF


15-1163270676
PHPDeveloper
2006-11-11 21:44
2006.12.03
escrow.com


2-1163625563
framez
2006-11-16 00:19
2006.12.03
Считывание данных