Форум: "Основная";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
ВнизКонтроль фокуса. Найти похожие ветки
← →
demonyator (2003-05-17 20:17) [0]Есть две формы, обе видны на экране.Задача в том, что надо сделать чтобы при получении фокуса одной формой - другая оставалась всё-равно позади. Помогите справиться с проблемой.
← →
Романов Р.В. (2003-05-17 21:40) [1]FormStyle := fsStayOnTop; ?
← →
demonyator (2003-05-18 01:38) [2]это не то. Обе формы не должны обязательно быть сверху всех. Необходимо просто сделать так, чтобы при получении фокуса одной формой, другая при этом не вылазила на первый план.
← →
Dmk (2003-05-18 02:53) [3]SetWindowPos
посмотри флаги
SWP_NOOWNERZORDER Does not change the owner window"s position in the Z order.
SWP_NOREPOSITION Same as the SWP_NOOWNERZORDER flag.
SWP_NOZORDER Retains the current Z order (ignores the hWndInsertAfter parameter).
← →
Юрий Зотов (2003-05-18 09:52) [4]> Задача в том, что надо сделать чтобы при получении фокуса
> одной формой - другая оставалась всё-равно позади
> Необходимо просто сделать так, чтобы при получении фокуса
> одной формой, другая при этом не вылазила на первый план.
Знаете, а если НИЧЕГО не делать, то как раз так и будет.
← →
demonyator (2003-05-18 15:10) [5]
> Знаете, а если НИЧЕГО не делать, то как раз так и будет.
Нет, Юрий, Вы не правы. У обоих форм Visible=True. Поэтому при получении фокуса одной, вторая тоже выпихивается повыше.
← →
Zacho (2003-05-18 15:25) [6]
> demonyator © (18.05.03 15:10)
Чушь какая-то. Например, в моем текущем проекте может быть до хрена видимых форм. И при получении фокуса одной из них, остальные никуда не "выпихиваются". Что-то ты не договариваешь.
← →
demonyator (2003-05-18 19:54) [7]Странно... Описываю ситуацию.
Form1 - главная.
Form2 - обычная.
Form1 - полностью скрыта за другими окнами.
Form2 - частично скрыта (торчит кусок :-) жму на этот кусок (который торчит :-) --- на передний план выходят обе формы...
← →
Юрий Зотов (2003-05-19 15:08) [8]> demonyator © (18.05.03 19:54)
Так бы сразу и говорили. Первоначальный-то вопрос звучал иначе.
Делайте Form1 невидимой, вот и все.
procedure TForm2.FormShow(Sender: TObject);
begin
Application.MainForm.Hide
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.MainForm.Show
end;
← →
demonyator (2003-05-20 18:06) [9]
> Юрий Зотов
в том то и проблема, что обе формы должны быть видны. В вашем примере получается - onShow - Hide. OnClose - Show. То есть она появится только когда её будут закрывать :) Я сделал таким образом: Form2.OnClick ->> Form1.Hide ..... Form1.Show, но при этом Form1 всё-равно на мгновение появляется на экране - что очень не красиво. Может ещё идеи какие - нибудь?
← →
Юрий Зотов (2003-05-20 18:19) [10]Копните в этом направлении:
WM_WINDOWPOSCHANGING (или WM_WINDOWPOSCHANGED)
inherited;
if Screen.ActiveForm <> Self then
with Message.WidowPos do
flags := flags or SWP_NOZORDER
← →
demonyator (2003-05-21 00:50) [11]ok. Спасибо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c