Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Создать (показать) не активную форму


Автор: Gnusss 23.11.2005, 09:21
Привет всем!

Есть такая проблема: При показе формы(AForm.Show), форма которую я показываю становиться активной. Как можно сделать так чтобы форма, которую я показываю, не становилась активной, а активной оставалась форма, которая и была?

Заранее спасибо за ответ!
Добавлено @ 09:26
И еще когда я изменяю FormStyle, форма тоже становится активной, как этого избежать?

Автор: ~FoX~ 23.11.2005, 09:29
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
  Self.SetFocus;
//  Form1.Button1.SetFocus; // Или так
end;

Автор: Alexeis 23.11.2005, 09:45
или так

FocusControl(другая форма или контрол);

Автор: Gnusss 23.11.2005, 09:46
А если заранее не известно, какая форма активна в данный момент.
И все ровно же на короткий период времени форма становится не активной, это плохо.

Автор: Rennigth 23.11.2005, 10:26
Цитата(Gnusss @ 23.11.2005, 09:46)
на короткий период времени форма становится не активной

ни кто и никогда не заметит этот короткий промежуток времени smile

Цитата(Gnusss @ 23.11.2005, 09:46)
А если заранее не известно, какая форма активна в данный момент.

должно помочь:
Код

var
  lHandle: THandle;
begin
  lHandle :=  GetActiveWindow; 
  Form2.Show;
  windows.SetFocus(lHandle);
end;


Автор: ~FoX~ 23.11.2005, 11:00
Цитата(Gnusss @ 23.11.2005, 10:46)
А если заранее не известно, какая форма активна в данный момент.


Цитата
Self.SetFocus;
- Вернет вокус объекту вызвавшему окно.

Поставь у вызывающей форму FormStyle := fsStayOnTop

Опиши по подробней зачем теде это понадобилось?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)