Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
15-1163694687
Ringo
2006-11-16 19:31
2006.12.03
Бог есть. Вероятно. А как думают остальные?


2-1163243363
lsvit
2006-11-11 14:09
2006.12.03
TList


15-1163685032
Андрей Сенченко
2006-11-16 16:50
2006.12.03
Работа с XML на Delphi. Начинающему :)


4-1153033422
apic
2006-07-16 11:03
2006.12.03
работа с железом


2-1163591974
Толян__
2006-11-15 14:59
2006.12.03
Архивировать файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский