Фокус формы в Delphi

TaYgA

Здравствуйте, задумал сделать в своём проекте, что то типо подсказки т.е. загружается главная форма, а вместе с ней и подсказка. У главной формы в процедуре FormShow прописал:
Form2.Show;
В этом случаи запускается сначало Form2, а потом только главная форма т.е. фокус на главной форме. Как мне сделать, чтоб фокус был на Form2 при запуске проекта? Как можно сделать, чтоб Form2 запускалось с задежкой т.е. через несколько секунд после загрузки главной формы?
10 ответов

TaYgA

Ставишь sleep(сколько миллисекунд задержки) перед Form2.Show; или я не понял вопроса


TaYgA

пиши Form2.ShowModal


TaYgA

по поводу фокусировки на форме 2, то измени вот тут
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
 
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Form2.Show;
  Application.Run;
end.
по поводу задержки, не советывал бы sleep так как само по себе оно повесит приложение на время задержки, и даже если поставить Application.ProcessMessages все равно будет ощутимы задежки, так что лучше использовать просто и банально таймер. *********, как я понял ему не модальность нужна была а просто фокус. Для этого есть SetFocus или так как я написал.


TaYgA

igoriy, всё правельно понял, спасибо! *********, если так написать, то получится ерунда! Inadequate, ваш совет помог больше всего. Прописал как вы и говорили, но всё равно загружается сначало Form2, а потом только Form1....


TaYgA

TaYgA, сейчас напишу проектик и выложу. Посмотрите как и что.


TaYgA

вот тут именно то что Вам нужно


TaYgA

Inadequate, большое вам спасибо!!!


TaYgA

Вынужден вtрнуться к этой теме. Задежка загрузки формы работает только для главной формы. А как мне сделать задежку если я использую не главную форм т.е. при нажатии на кнопку загружается Form3 а через некоторое время Form2. Если в Form3 в процедуре FormShow прописывать
Form2.Show;
то получается тот же самый косяк (загружается сначала Form2 а поверх неё Form3)


TaYgA

Ну что же Вы сразу не написали что именно Вам нужно... Вот еще один проект


TaYgA

Inadequate, мне нужны были оба варианта Большое спасибо за вашу помощь!!!