Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-3126
GILforever
2003-05-14 21:28
2003.06.02
Срочно нужны компоненты


14-3107
SKing
2003-05-14 10:54
2003.06.02
Изменение DBCheckBox по двойному клику?


1-2976
zeppelin
2003-05-21 14:02
2003.06.02
Подсчет русских символов в тексте


11-2834
antonioxxx
2002-09-06 19:59
2003.06.02
Проблема с компиляцией.


1-2873
QUE
2003-05-22 14:29
2003.06.02
??? CreateParams ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский