![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить у ToolBar режим floating, т.е. когда ToolBar [D7]
Layner © (2005-06-14 11:06:00)находится над формой, в виде плавающего окошка?
ferr (2005-06-14 16:21:00) [1]Хех, а что мешает использовать не 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;
Layner (2005-06-14 13:32:00) [2]Нашел рабочее решение, мог бы использовать, да 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;
Может есть ещё какие нибудь варианты?
Чапаев (2005-06-14 12:56:00) [3]>А вот как узнать, что закрыли плавающее окно? Или можно >наоборот, как не допустить закрытия плавающего окна? 2е даже >было бы предпочтительнее 1го.
Я создавал наследника TCustomDockForm, нужному контролу FloatingDockSiteClass назначал этот свой класс. А в классе уж отрабатывал OnClose(), OnCloseQuery().
Layner (2005-06-14 11:39:00) [4]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го.
ferr (2005-06-14 11:28:00) [5]ToolBar.Parent глядеть можно...
Layner (2005-06-14 11:08:00) [6]Т.е. событие OnEndDock, а как узнать, плавающее это окошко, или встроенное в CoolBar, и если плавающее, как отловить, что его закрыли.. :)
Заранее благодарю.