Здравствуйте, SKYNET, Вы писали:
SKY> Я столкнулся с такой проблемой: есть две формы Form1 и Form2. Если создать новое приложение — всё работает (форма2 создаёться а по нажатии на Button1 формы2 она закрываеться и появляеться форма1). А если Я делаю тоже самое в моей программе, то форма2 создаёться, по нажатии на Button1 форма2 закрываеться, создаёться форма1, а вот сверху опять появляеться форма2 и если нажать на Button1, то закрываеться всё приложение. Я даже удалял ВСЁ из моей программы — результат тот же. SKY>
procedure CreateForm(FormClass: TFormClass; var Reference);
Description
Call CreateForm to dynamically create a form at runtime. Developers do not need to add code for creating most forms, because typically one or more calls to CreateForm are added automatically to the project's source when using the form designer.
CreateForm creates a new form of the type specified by the FormClass parameter and assigns it to the variable given by the Reference parameter. The owner of the new form is the Application object.
Note: By default, the form created by the first call to CreateForm in a project becomes the application’s main form.
Ну а Вы создаете Form2 в обработчике .onCreate, т.е. ДО создания Form1!
Я столкнулся с такой проблемой: есть две формы Form1 и Form2. Если создать новое приложение — всё работает (форма2 создаёться а по нажатии на Button1 формы2 она закрываеться и появляеться форма1). А если Я делаю тоже самое в моей программе, то форма2 создаёться, по нажатии на Button1 форма2 закрываеться, создаёться форма1, а вот сверху опять появляеться форма2 и если нажать на Button1, то закрываеться всё приложение. Я даже удалял ВСЁ из моей программы — результат тот же.
procedure TForm1.FormShow(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Form2.Close;
end;
Здравствуйте, SKYNET, Вы писали:
SKY> Я столкнулся с такой проблемой: есть две формы Form1 и Form2. Если создать новое приложение — всё работает (форма2 создаёться а по нажатии на Button1 формы2 она закрываеться и появляеться форма1). А если Я делаю тоже самое в моей программе, то форма2 создаёться, по нажатии на Button1 форма2 закрываеться, создаёться форма1, а вот сверху опять появляеться форма2 и если нажать на Button1, то закрываеться всё приложение. Я даже удалял ВСЁ из моей программы — результат тот же. SKY>
Здравствуйте, SKYNET, Вы писали:
SKY> Я столкнулся с такой проблемой: есть две формы Form1 и Form2. Если создать новое приложение — всё работает (форма2 создаёться а по нажатии на Button1 формы2 она закрываеться и появляеться форма1). А если Я делаю тоже самое в моей программе, то форма2 создаёться, по нажатии на Button1 форма2 закрываеться, создаёться форма1, а вот сверху опять появляеться форма2 и если нажать на Button1, то закрываеться всё приложение. Я даже удалял ВСЁ из моей программы — результат тот же. SKY>
Здравствуйте, Clickmaker, Вы писали:
C>Здравствуйте, SKYNET, Вы писали:
SKY> Я столкнулся с такой проблемой: есть две формы Form1 и Form2. Если создать новое приложение — всё работает (форма2 создаёться а по нажатии на Button1 формы2 она закрываеться и появляеться форма1). А если Я делаю тоже самое в моей программе, то форма2 создаёться, по нажатии на Button1 форма2 закрываеться, создаёться форма1, а вот сверху опять появляеться форма2 и если нажать на Button1, то закрываеться всё приложение. Я даже удалял ВСЁ из моей программы — результат тот же. SKY>
Здравствуйте, SKYNET, Вы писали:
SKY> Я столкнулся с такой проблемой: есть две формы Form1 и Form2. Если создать новое приложение — всё работает (форма2 создаёться а по нажатии на Button1 формы2 она закрываеться и появляеться форма1). А если Я делаю тоже самое в моей программе, то форма2 создаёться, по нажатии на Button1 форма2 закрываеться, создаёться форма1, а вот сверху опять появляеться форма2 и если нажать на Button1, то закрываеться всё приложение. Я даже удалял ВСЁ из моей программы — результат тот же. SKY>
понятное дело. Все работает как ты и написал Ведь когда ты показываеш первую форму, исполняэтся Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
поетому еще раз и показывается троя вторая форма
Проверь порядок создания форм, и то какие из них на AutoCreate
А то в таком случае как ті написал утечка памяти будет.
Здравствуйте, SKYNET, Вы писали:
SKY> Я столкнулся с такой проблемой: есть две формы Form1 и Form2. Если создать новое приложение — всё работает (форма2 создаёться а по нажатии на Button1 формы2 она закрываеться и появляеться форма1). А если Я делаю тоже самое в моей программе, то форма2 создаёться, по нажатии на Button1 форма2 закрываеться, создаёться форма1, а вот сверху опять появляеться форма2 и если нажать на Button1, то закрываеться всё приложение. Я даже удалял ВСЁ из моей программы — результат тот же. SKY>
Здравствуйте, mrhru, Вы писали:
M>Если при закрытии формы2 закрывается всё приложение, то по (пока) непонятным причинам Application считает эту форму главной.