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


Автор: devmstr 10.5.2004, 15:58
Как сделать так чтобы с вызваной формы нельзя было переключиться на другую. Проблема в том что вызвать форму как SHOWMODAL нельзя.
Пробовал перехватывать свойство wmactivate, но незнаю что делать дальше, как вернуть форме фокус. Help, please.




Автор: Dr.Drunk 10.5.2004, 16:48
magician, у формы есть метод SetFocus, попробуй им воспользоваться (Он устанавливает фокус на форму), можно вызвать такую же APIшную функцию

Автор: Гость_magician 10.5.2004, 19:11
Что не так
procedure TF_ProgressBar_Video.wmactivate(Var a:twmactivate);
begin
inherited;
if a.Active=WA_INACTIVE then
F_ProgressBar_Video.BringToFront;
//c F_ProgressBar_Video.SetFocus тоже самое
a.Result:=0;

end;

Автор: x77 10.5.2004, 19:50
Гость_magician, сделай проще:

Код
procedure TForm1.FormDeactivate(Sender: TObject);
begin
 SetFocus;
end;

Автор: Medved 10.5.2004, 22:40
А почему нельзя вызывать как модальное окно? Для чего интересно это нужно?

Автор: x77 10.5.2004, 22:51
Pegas, модальное окно нельзя убрать программно.иногда это критично. а тут - показал, отработал, убрал. если в процессе обработке есть хоть один Application.ProcessMessages, неблагодарный юзверь может щёлкнуть на любое место вне статусноё формы и через пять минут ты будешь слушать его вопли "всё сломалось".

Автор: Medved 10.5.2004, 23:03
Век живи, век учись.... умно однако...

Автор: devmstr 11.5.2004, 21:38
Все разобрался, спасибо всем.

Use OnDeactivate.

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