Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Панель 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]

никак, только если эта панель будет на другой форме, которую ты можешь показывать в любом месте экрана


Наверх

Титульная страница Поиск, карта сайта Написать письмо