Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.07;
Скачать: CL | DM;

Вниз

Панель onTop   Найти похожие ветки 

 
товарищ вася   (2009-04-23 10:28) [0]

Как отобразить панель поверх формы,чтобы она как popup меню могла выходить за границы формы?
Спасибо.


 
brother ©   (2009-04-23 10:32) [1]

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


 
{RASkov} ©   (2009-04-23 10:45) [2]

... или вообще лучше вместо панели использовать просто форму...
можно и панель заставить так вести себя, но к чему это?


 
Anatoly Podgoretsky ©   (2009-04-23 10:54) [3]

> товарищ вася  (23.04.2009 10:28:00)  [0]

Popup меню никогда часть формы не был, это отдельное окно.


 
товарищ вася   (2009-04-23 11:15) [4]

Спасибо за ответы.

> можно и панель заставить так вести себя, но к чему это?

потому что на 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;

Можно ли вместо корректирования показать поверх формы?


 
clickmaker ©   (2009-04-23 11:45) [5]

> Можно ли вместо корректирования показать поверх формы?

а если там конец экрана?


 
brother ©   (2009-04-23 12:05) [6]

> [4] товарищ вася   (23.04.09 11:15)

Антон, ответ на [0] ты получил, остальное дело техники


 
Игорь Шевченко ©   (2009-04-23 12:09) [7]


> Как отобразить панель поверх формы,чтобы она как popup меню
> могла выходить за границы формы?


Назначить рабочий стол ее ParentWindow


 
товарищ вася   (2009-04-23 21:20) [8]


> Назначить рабочий стол ее 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;

Так, к сожалению не работает


 
{RASkov} ©   (2009-04-23 21:34) [9]

> [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:45) [10]


> Windows.SetParent(Panel1.Handle, GetDesktopWindow);Но это
> не решение твоей проблемы, т.е. частично, теперь нужно еще
> много чего изменить и в итоге получим окно с теми же практически
> свойствами, что и TForm....

Ясно, значит выводим форму, со свойством bsNone...
Благодарю-с.



Страницы: 1 вся ветка

Текущий архив: 2009.06.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
4-1210775223
re_qas
2008-05-14 18:27
2009.06.07
ADSI в DLL


2-1240556887
Vladislav
2009-04-24 11:08
2009.06.07
Как внести программу в контекстное меню Windows


2-1240246030
alex989
2009-04-20 20:47
2009.06.07
Странности с математикой (real, extended)


15-1238237325
TUser
2009-03-28 13:48
2009.06.07
Ну, что, инженеры? Слабо?


2-1238778258
Kos
2009-04-03 21:04
2009.06.07
отрисовка в image