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

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

форма поверх [D7]


vir ©   (2007-07-05 17:48:00) 

Как создать форму чтобы она на экране была всегда выше основной формы. Но не была StayOnTop? Последнее не подходит т.к. она прекрывает и другие приложения.


Юрий Зотов   (2007-07-07 15:04:00) [1]

Пояснение - вариант [13] не вполне "чистый", но, возможно, подойдет. Если нет - см. [5].


Юрий Зотов   (2007-07-07 14:04:00) [2]

procedure TForm1.FormDblClick(Sender: TObject);
var
 F: TForm2;
begin
 F := TForm2.Create(Self);
 Windows.SetParent(F.Handle, Handle);
 F.Show;
end;


{RASkov}   (2007-07-06 16:36:00) [3]

> [11] rom4eg   (06.07.07 06:18)
> Форма (не мэйнформ) с StayOnTop, например, может закрыть
> панель задач с меню "пуск"

Да... верно, но оно так и должно быть... и только тогда когда программа, с дочерней формой которая StayOnTop, активна и фокус у той дочерней формы....
Можно глупый совет - таймер и [5] :) или [5] и без таймера, но здесь "каждый" чих ловить нужно... т.е. внимательно следить за тем, что бы ее показывать сверху и только в своем приложении....


rom4eg   (2007-07-06 06:18:00) [4]

Форма (не мэйнформ) с StayOnTop, например, может закрыть панель задач с меню "пуск"


{RASkov}   (2007-07-05 19:48:00) [5]

> [9] Инс ©   (05.07.07 19:43)

>[0]...была всегда выше основной формы. Но не была StayOnTop? Последнее не подходит т.к. она прекрывает и другие приложения.

Откуда он пришел к такому мнению.....
Нет... я не тебя спрашиваю.... так это... комментарий автору:)


Инс   (2007-07-05 19:43:00) [6]


> Абсолютно нормально.... если использовать fsStayOnTop


Дык да, но... автор, как я понял, хочет каким-то другим путем насильно выносить форму на передний план.


{RASkov}   (2007-07-05 19:41:00) [7]

> [7] Инс ©   (05.07.07 19:22)

Абсолютно нормально.... если использовать fsStayOnTop
:) Конечно еще зависит от желаний автора.


Инс   (2007-07-05 19:22:00) [8]

Интересно, а как будет выглядеть "драка за TOP", когда пользователь запустит два экземпляра Вашей программы...


{RASkov}   (2007-07-05 19:04:00) [9]

> [0] vir ©   (05.07.07 17:48)
> Как создать форму чтобы она на экране была всегда выше основной
> формы. Но не была StayOnTop? Последнее не подходит т.к.
> она прекрывает и другие приложения.

fsStayOnTop
И ничего она не перекрывает, если она не МайнФорм в проекте....


Игорь Шевченко   (2007-07-05 18:10:00) [10]

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

 SetWindowPos(Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE);


vir   (2007-07-05 18:02:00) [11]

я же говорил всегда ....
т.е. даже при получении фокуса другим окном программы


Игорь Шевченко   (2007-07-05 17:58:00) [12]

BringToFront ?


vir   (2007-07-05 17:55:00) [13]

нет, это останавливает поток вызыващий ShowModal и не дает получать фокус на  другие окна.


Ega23   (2007-07-05 17:53:00) [14]

Form2.ShowModal


Наверх

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