Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > вывод формы поверх всех на 2-ом мониторе


Автор: gonzales 26.11.2006, 20:53
Задача:
имеется комп с присоединенным телевизором (по S-video). Видюха настроена на режим DualView с включенным режимом полноэкранного изображения (используется для просмотра фильмов с компьютера на экране телевизора). Необходимо вывести форму поверх изображения.
Пробовал следующий код 

Код

  form2.Canvas.Font.Handle:=hfont;
  form2.Width:=form2.Canvas.TextWidth(s)+2;
  form2.Height:=form2.Canvas.TextHeight(s)+2;
  form2.Top:=trunc(screen.Height/2-form2.Height/2);
  form2.Left:=screen.DesktopWidth-form2.Width-20;
  Form2.Visible := FALSE;
  ShowWindow(Form2.Handle, SW_SHOWNA);
  SetWindowPos(form2.Handle, hwnd_TopMost, form2.Left, form2.Top, form2.Width, form2.Height, SWP_NOACTIVATE or SWP_NOMOVE or     SWP_NOSIZE);
   form2.Canvas.Font.Color:=cllime;
   form2.Canvas.TextOut(0,0,s);



все работает, только если на телевизоре не запущен полноэкранный режим, то есть при просмотре фильма поверх него НИЧЕГО не выводится. 
На мониторе все нормально во всех режимах.

Подскажите, в какую сторону копать.

Заранее благодарю за ответы

Автор: Zero 26.11.2006, 23:09
Цитата(gonzales @  26.11.2006,  21:53 Найти цитируемый пост)
Необходимо вывести форму поверх изображения.

Прикольно звучит вопрос, как будто нужно, плоскость монитора и того что на ней есть развернуть на 180 градусов. smile 
Цитата(Правила форума)
Очень желательно в новом сообщении указывать следующее:
....
— Чётко, полно и кратко обрисовать проблему. Помните, что телепатов здесь нет, и на вопрос «Я написал программу, а она не работает» никто Вам ответить не сможет.

 smile 

Автор: gonzales 27.11.2006, 11:28
2 Zero

Вы мне своим постом РЕАЛЬНО помогли.

Цитата(Zero @  26.11.2006,  23:09 Найти цитируемый пост)
Прикольно звучит вопрос, как будто нужно, плоскость монитора и того что на ней есть развернуть на 180 градусов


при чем тут поворот на 180 градусов  smile

По поводу четкости высказанной мной мысли, попробую пояснить.
При выводе на телевизор полноэкранного изображения, сама форма плеера остается в пределах монитора, соответственно стандартный метод  SetWindowPos не работает.
Вопрос как это обойти.

Автор: Snowy 27.11.2006, 12:51
А просто выставить у формы FormStyle в fsStayOnTop не пробовал?
А сделать потом BringToFront?

Автор: gonzales 27.11.2006, 13:05
все пробовал

все дело в том, что на телевизоре нет других окон, кроме моего, а изображение на полный экран выводится каким-то хитрым способом, и оно все перекрывает  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)