Вниз
Скачать: CL | DM;

форма поверх   Найти похожие ветки 

 
vir ©   (2007-07-05 17:48) [0]

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


 
Ega23 ©   (2007-07-05 17:53) [1]

Form2.ShowModal


 
vir ©   (2007-07-05 17:55) [2]

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


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

BringToFront ?


 
vir ©   (2007-07-05 18:02) [4]

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


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

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

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


 
{RASkov} ©   (2007-07-05 19:04) [6]

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

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


 
Инс ©   (2007-07-05 19:22) [7]

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


 
{RASkov} ©   (2007-07-05 19:41) [8]

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

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


 
Инс ©   (2007-07-05 19:43) [9]


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


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


 
{RASkov} ©   (2007-07-05 19:48) [10]

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

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

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


 
rom4eg   (2007-07-06 06:18) [11]

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


 
{RASkov} ©   (2007-07-06 16:36) [12]

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

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


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

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


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

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



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.015 c
2-1183737302
Углук
2007-07-06 19:55
2007.08.05
Как определить, используется ли стиль XP или стиль "Классик"


15-1183615251
Predfer
2007-07-05 10:00
2007.08.05
У кого какой антивирус?


2-1183964332
vitv
2007-07-09 10:58
2007.08.05
Вызов функции из юнита.


15-1183981766
Pashok
2007-07-09 15:49
2007.08.05
заблокирован DVD привод (Lite-on DVDRW SHM-165 P6S)


15-1183714852
Panel
2007-07-06 13:40
2007.08.05
Ошибка при компиляции модуля




   Наверх