![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с двумя формами
Dr.Pipe © (2002-05-18 20:22:00)У меня имеются две формы. Form1 и Form2. Visible у обеих true.
При клике на кнопку на первой форме, открывается вторая, а первая прячется (Show, Hide). точно также и во второй (только прячется теперь вторая). Form1 - главная.
Мне нужно такое:
Form1.
if label1.caption="2" then
begin
Form2.SHow;
Form1.hide;
end;
if label1.caption="1" then
begin
Form1.Show;
Form2.Hide;
end;
Это у меня идёт по таймеру.
Label1.Caption у меня = "2" и при запуске программы должна скрыться первая форма и выскочить вторая. Но вся проблема в том, что сначала мелькает первая, а уже потом показывается вторая. Так вот, как это мелькание избежать?
Dr.Pipe (2002-05-20 16:36:00) [1]2VID
Thanks
VID (2002-05-19 21:55:00) [2]В свойстве Timer1.Enabled в Design-time не забудь указать TRUE, или можешь на событии onCreate объекта FORM1 написать Timer1.Enabled := true;
VID (2002-05-19 21:52:00) [3]procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm :=false;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Label1.Caption = "2" then
begin
label1.caption := "1";
form1.Hide ;
form2.Show;
end
else
begin
label1.caption := "2";
form1.Show;
form2.Hide ;
end;
end;
Dr.Pipe (2002-05-19 15:29:00) [4]Ну поможет кто?
Dr.Pipe (2002-05-19 14:13:00) [5]2}{enon
У меня процедура идёт при запуске программы по тамеру. Так что кнопки отпадают.
}{enon (2002-05-19 12:39:00) [6]Не совсем понял вопрос, но попробуй один из двух вариантов:
1)При необходимости ставь размер формы 0*0 (может быть долго)
2)Не используя if..then..else, пиши так:
Procedure TForm1.Button1Click (Sender: TObject);
begin
Form1.Hide;
Form2.Show;
end;
Procedure TForm2.Button1Click (Sender: TObject);
begin
Form2.Hide;
Form1.Show;
end;
P.S. Может не подойти - тогда пиши!
Dr.Pipe (2002-05-19 11:36:00) [7]Писал так:
if form1.label1.caption="1" then
begin
Form2.hide;
Form1.Show;
end
else
begin
Form1.hide;
Form2.Show;
end;
Всё равно, пока выскочит вторая, мигает первая. Т.е. показывается первая и через пол-секунды она прячется и высвечивается вторая. Вот как сделать, чтобы первая в начале проверки не показывалась?
Song (2002-05-18 21:59:00) [8]Чтобы скрыть главную форму используют TApplication.ShowMainForm
Dr.Pipe (2002-05-18 21:40:00) [9]И вобще, ведь первая - главная. Она создаётся первой. Я уже её и Visible:=False ставил до загрузки - всё равно не помогает.
Dr.Pipe (2002-05-18 21:37:00) [10]2Anatoly Podgoretsky
>>А как же иначе, последней у тебя показывается форма 1, перед >>этим она прячется, кратковременно показывается 2
Да я ставил поначалу Form1.Hide а затем Form2.Show, но всё-равно не получается. Что такое не пойму!
copyr25 (2002-05-18 21:36:00) [11]Программист сидит в кафешке. К нему подходит официантка и доверительно
говорит, - если хочешь хорошо провести время, то меня зовут Машей.
-- А если не хочу, то как тебя зовут?
(жизненный пример if .. then .. else:))
Anatoly Podgoretsky (2002-05-18 21:31:00) [12]А как же иначе, последней у тебя показывается форма 1, перед этим она прячется, кратковременно показывается 2
Секрет успеха в операторе ELSE