![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Панель onTop [XP]
товарищ вася © (2009-04-23 10:28:00)Как отобразить панель поверх формы,чтобы она как popup меню могла выходить за границы формы?
Спасибо.
товарищ вася (2009-04-23 21:45:00) [1]
> Windows.SetParent(Panel1.Handle, GetDesktopWindow);Но это
> не решение твоей проблемы, т.е. частично, теперь нужно еще
> много чего изменить и в итоге получим окно с теми же практически
> свойствами, что и TForm....
Ясно, значит выводим форму, со свойством bsNone...
Благодарю-с.
{RASkov} (2009-04-23 21:34:00) [2]> [4] товарищ вася (23.04.09 11:15)
> > можно и панель заставить так вести себя, но к чему это?
>
> потому что на popup комбобокс не кинешь...
Ну так почему для этого выбрана именно панель, а не TForm с BorderStyle=bsNone например?
> [8] товарищ вася (23.04.09 21:20)
Windows.SetParent(Panel1.Handle, GetDesktopWindow);
Но это не решение твоей проблемы, т.е. частично, теперь нужно еще много чего изменить и в итоге получим окно с теми же практически свойствами, что и TForm....
товарищ вася (2009-04-23 21:20:00) [3]
> Назначить рабочий стол ее ParentWindow
GetCursorPos(pt);
pt.X:=pt.X-MainForm.Left;
pt.Y:=pt.Y-MainForm.Top;
Panel1.Top:=pt.Y;
Panel1.Left:=pt.X;
Panel1.ParentWindow:=GetDesktopWindow;
Panel1.Show;
Так, к сожалению не работает
Игорь Шевченко (2009-04-23 12:09:00) [4]
> Как отобразить панель поверх формы,чтобы она как popup меню
> могла выходить за границы формы?
Назначить рабочий стол ее ParentWindow
brother (2009-04-23 12:05:00) [5]> [4] товарищ вася (23.04.09 11:15)
Антон, ответ на [0] ты получил, остальное дело техники
clickmaker (2009-04-23 11:45:00) [6]> Можно ли вместо корректирования показать поверх формы?
а если там конец экрана?
товарищ вася (2009-04-23 11:15:00) [7]Спасибо за ответы.
> можно и панель заставить так вести себя, но к чему это?
потому что на popup комбобокс не кинешь...
На ричедите он маусмув выделяется слово, На ричедит-е онмоусдаун должно выходить окно со свойствами выделенного слова...
Если панель выходит за границы:
procedure TForm1.CorrectPos;
begin
if (Panel1.Left+Panel1.Width>Form1.Width) then Panel1.Left:=Panel1.Left-Panel1.Width;
if (panel1.Top+Panel1.Height+trunc(RichEdit1.Font.Size*3)>Form1.HEight) then Panel1.Top:=Panel1.Top-Panel1.Height;
end;
Можно ли вместо корректирования показать поверх формы?
Anatoly Podgoretsky (2009-04-23 10:54:00) [8]> товарищ вася (23.04.2009 10:28:00) [0]
Popup меню никогда часть формы не был, это отдельное окно.
{RASkov} (2009-04-23 10:45:00) [9]... или вообще лучше вместо панели использовать просто форму...
можно и панель заставить так вести себя, но к чему это?
brother (2009-04-23 10:32:00) [10]никак, только если эта панель будет на другой форме, которую ты можешь показывать в любом месте экрана