Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с двумя формами


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо