Текущий архив: 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.45 MB
Время: 0.054 c