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

Вниз

Как отловить у ToolBar режим floating, т.е. когда ToolBar   Найти похожие ветки 

 
Layner ©   (2005-06-14 11:06) [0]

находится над формой, в виде плавающего окошка?


 
Layner ©   (2005-06-14 11:08) [1]

Т.е. событие OnEndDock, а как узнать, плавающее это окошко, или встроенное в CoolBar, и если плавающее, как отловить, что его закрыли.. :)
Заранее благодарю.


 
ferr ©   (2005-06-14 11:28) [2]

ToolBar.Parent глядеть можно...


 
Layner ©   (2005-06-14 11:39) [3]

ferr ©   (14.06.05 11:28)
Спасибо, точно, с родителем вроде разобрался, если окно плавающее, то родителя нет (в моем случае так смотрю, код ниже)
procedure Tfmain.ToolBar1EndDock(Sender, Target: TObject; X, Y: Integer);
begin
 Showmessage("Операция: EndDock; Родитель: "+ToolBar1.Parent.Name+"; Координаты:"+IntToStr(X)+"-"+IntToStr(Y));
end;

А вот как узнать, что закрыли плавающее окно? Или можно наоборот, как не допустить закрытия плавающего окна? 2е даже было бы предпочтительнее 1го.


 
Чапаев ©   (2005-06-14 12:56) [4]

>А вот как узнать, что закрыли плавающее окно? Или можно >наоборот, как не допустить закрытия плавающего окна? 2е даже >было бы предпочтительнее 1го.
Я создавал наследника TCustomDockForm, нужному контролу FloatingDockSiteClass назначал этот свой класс. А в классе уж отрабатывал OnClose(), OnCloseQuery().


 
Layner ©   (2005-06-14 13:32) [5]

Нашел рабочее решение, мог бы использовать, да OnClose у меня выполняется под другим назначением.

procedure Tfmain.ToolBar1EndDock(Sender, Target: TObject; X, Y: Integer);
begin
if ToolBar1.Floating then
 if ToolBar1.Parent is TToolDockForm then
  TForm(ToolBar1.Parent).OnClose := FormClose;
end;


Может есть ещё какие нибудь варианты?


 
ferr ©   (2005-06-14 16:21) [6]

Хех, а что мешает использовать не OnClose?
 TForm1 = class(TForm)
...
   procedure FormClose2(Sender: TObject; var Action: TCloseAction);
 private
...
procedure TForm1.ToolBar1EndDock(Sender, Target: TObject; X, Y: Integer);
begin
if ToolBar1.Floating then
if ToolBar1.Parent is TToolDockForm then
 TForm(ToolBar1.Parent).OnClose := FormClose2;
end;

procedure TForm1.FormClose2(Sender: TObject; var Action: TCloseAction);
begin
showmessage("Good for you");
end;



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
4-1115537644
alpet
2005-05-08 11:34
2005.07.11
Странный регион


1-1118833829
MishaVagin
2005-06-15 15:10
2005.07.11
Подключение библиотек во время работы программы


6-1112683496
Axer
2005-04-05 10:44
2005.07.11
Из Ethernet в Com-порт


6-1112263480
EvgeniyR
2005-03-31 14:04
2005.07.11
idTCPClient и Proxy


14-1118726011
Ega23
2005-06-14 09:13
2005.07.11
С днём рождения! 14 июня