Реферат Курсовая Конспект
R:TRect; begin if ToolBar1.HostDockSite<>ControlBar1 then - раздел Образование, Дерево элементов TTreeView Begin Getwindowrect(Toolbar1.handle, R); Application.messagebox(Pchar...
|
begin GetWindowRect(ToolBar1.Handle, R); Application.MessageBox(PChar(IntToStr(r.Left)+'--'+IntToStr(r.Top)),
'MM',IDOK); end; end;
В первой строке я проверяю, лежит ли ToolBar1 на ControlBar1 с помощью (ToolBar1.HostDockSite<>ControlBar1). Если он лежит, то получить положение ToolBar1 очень просто. Для этого можно узнать всего лишь ToolBar1.Left и ToolBar1.Top.
Если ToolBar1 не лежит на ControlBar1 (ToolBar1 выглядит как отдельное окно), то задача усложняется. Тебе придётся вызывать GetWindowRect, чтобы получить реальное положение ToolBar1 на экране. В качестве первого параметра ты должен передать указатель на ToolBar1, а второй -это переменная типа TRect в которую запишется реальное положение окна. Для удобства я вывожу эти знчения в окне сообщения Application.MessageBox.
Всё это я делаю для наглядности. Теперь ты можешь запустить прогу и переместить ToolBar1 по экрану. Каждый раз, когда ты будешь нажимать кнопку, программа будет выводить окно и показывать тебе реальное положение ToolBar1.
По событию OnShow я написал:
procedure TForm1.FormShow(Sender: TObject);
begin ToolBar1.ManualDock(nil,nil,alNone); ToolBar1.ManualFloat(Bounds(100, 500, ToolBar1.UndockWidth,
ToolBar1.UndockHeight)); end;
ToolBar1.ManualDock заставляет переместится ToolBar1 на новый компонент. В качестве первого параметра указывается указатель на компонент или окно, к которому мы хотим прилепить ToolBar1. Я хочу, чтобы после загрузки ToolBar1 превратился в отдельное окно, поэтому я указываю nil. Второй параметр можешь ставить nil. Он означает компонент внутри компонента указанного в качестве первого параметра, на который мы хотим поместить ToolBar1. Я указал nil. Третий параметр – выравнивание.
С помощью ToolBar1.ManualFloat я просто двигаю ToolBar1 внутри нового компонента. У меня новый компонент nil, т.е. окно, поэтому я двигаю ToolBar1 по окну. Может не совсем понятно? Попробуй запустить пример и поиграть с ним, тогда всё встанет на свои места.
И ещё ToolBar1.UndockWidth и ToolBar1.UndockHeight возвращают размер ToolBar1, когда он выглядит как окно, а не лежит на ControlBar1.
Когда ты будешь использовать это в своей проге для сохранения положения ToolBar1, тебе надо будет написать примерно следующее по событию OnClose:
– Конец работы –
Эта тема принадлежит разделу:
Дерево элементов TTreeView...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: R:TRect; begin if ToolBar1.HostDockSite<>ControlBar1 then
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов