Свойства Form

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Свойства Form

Сообщение an-na2002 » 01.08.2006 11:29:03

У меня несколько форм. При переключении между ними я делаю:
...
Form2.Show;
Form1.Close;
выполнение заканчивается, хотя должна появиться TForm2.
Как сделать чтобы Form1 исчезала, а управление переходило к Form2?
an-na2002
новенький
 
Сообщения: 10
Зарегистрирован: 01.08.2006 11:16:22

Сообщение serg_iv » 01.08.2006 12:10:47

Form2.Show;
Form1.visible:=false;
serg_iv
постоялец
 
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение an-na2002 » 01.08.2006 12:21:15

Я делаю на Form2 - Close выполнение не заканчивается.
an-na2002
новенький
 
Сообщения: 10
Зарегистрирован: 01.08.2006 11:16:22

Сообщение pda » 01.08.2006 14:09:57

Form1 создаётся (как я понял) первой, она становится главной формой приложения. Соответсвенно, с ёё закрытием, завершается и приложение.
Аватара пользователя
pda
постоялец
 
Сообщения: 303
Зарегистрирован: 27.05.2005 19:59:53

Сообщение an-na2002 » 01.08.2006 14:18:15

А можно сделать так чтобы в приложении при закрытии Form1 (главной), главной становилась другая форма?
an-na2002
новенький
 
Сообщения: 10
Зарегистрирован: 01.08.2006 11:16:22

Сообщение Sergei I. Gorelkin » 01.08.2006 17:04:10

Нельзя - тяжкое наследие Windows MDI и Дельфи... Если хочется чего-то подобного, проще создать невидимую главную форму и никогда ее не закрывать.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1395
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение haword » 02.08.2006 09:23:18

an-na2002 писал(а):А можно сделать так чтобы в приложении при закрытии Form1 (главной), главной становилась другая форма?

сделай три формы, главной формой будет невидемая форма и через нее управляй двумя другими
haword
постоялец
 
Сообщения: 301
Зарегистрирован: 02.03.2006 11:34:40

Сообщение pda » 02.08.2006 17:06:03

an-na2002 писал(а):А можно сделать так чтобы в приложении при закрытии Form1 (главной), главной становилась другая форма?

Нет, но можно попробовать другое. Я не пробовал такое в FPC, но можно сделать на главной форме обработчик OnClose и устанавливать в нём Action в caHide.
Аватара пользователя
pda
постоялец
 
Сообщения: 303
Зарегистрирован: 27.05.2005 19:59:53

Сообщение volf » 17.08.2006 20:16:27

Товарищи зачем так все сложно.
Возможно необходимо решить проблему Splash формы (которая отображает красивый логотип программы пока остальная часть программы стартует). Для этого надо изменить стандартный блок в файле проэкта
Код: Выделить всё
  Application.Initialize;
  Application.CreateForm(TfrmSplash, frmSplash);
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;

на такой

Код: Выделить всё
begin
  frmSplash := TfrmSplash.Create(nil);
  try
    frmSplash.Show;
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm2, Form2);
.....
  finally
    FreeAndNil(frmSplash);
  end;
  Application.Run;
end.

где frmSplash - наша формачка отображаемая при старте (соответственно созданная нами в отдельном модуле :-) )
volf
незнакомец
 
Сообщения: 4
Зарегистрирован: 16.08.2006 12:45:45

Сообщение volf » 18.08.2006 13:42:47

хм одну строчку забыл :) хотя и без нее может работать
должно быть так
Код: Выделить всё
begin
  Application.Initialize;
  frmSplash := TfrmSplash.Create(nil);
  try
    frmSplash.Show;
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm2, Form2);
.....
  finally
    FreeAndNil(frmSplash);
  end;
  Application.Run;
end.
volf
незнакомец
 
Сообщения: 4
Зарегистрирован: 16.08.2006 12:45:45


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

Рейтинг@Mail.ru