![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
форма поверх [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