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

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

Формы


Hitkliff ©   (2006-04-27 17:14:00) 

Вопрос может показаться глупым! но всетаки как поменять порядок загрузки форм! Чтобы вначале загружалась не первая форма а например 5-ая??? Знаю можно так сделать, но вот не знаю как!


Юрий Зотов   (2006-04-28 07:52:00) [1]

> ЮЮ ©   (28.04.06 03:22) [5]
> Первая созданная форма является главной формой приложения

Неточно. Главной формой приложения является первая созданная форма, у которой владелец - Application.

> Hitkliff

Создайте в новом проекте 2 формы. Первую (Unit1, TForm1) - пустую, а на вторую (Unit2, TForm2) положите кнопки "OK" (Button1) и "Отмена" (Button2). В Инспекторе Объектов установите этим кнопкам в свойстве ModalResult значения mrOK (для Button1) и mrCancel (для Button2). В меню Delphi откройте диалог опций проекта (Project | Options), в нем на вкладке Forms переместите Form2 из левого окошка в правое и нажмите OK. В модуле Unit2 удалите 2 строки c объявлением переменной Form2. Сохраните проект.

Теперь подготовительные работы закончены и можно приступать к созданию формы, которая будет загружаться первой, но не будет главной. Откройте код проекта (Project | View Source) и руками поправьте его. Он должен стать таким:

program Project1;

uses
 Controls,
 Forms,
 Unit1 in 'Unit1.pas' {Form1},
 Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
 with TForm2.Create(nil) do
   if ShowModal = mrOK then
   begin
     Free;
     Application.Initialize;
     Application.CreateForm(TForm1, Form1);
     Application.Run
   end
   else
     Free
end.

Все, программу можно запускать. При этом первой появится форма TForm2 (например, она может служить диалогом для ввода пароля), но главной она не будет. Если в ней нажимаем кнопку "OK", то появляется главная форма (TForm1) и далее программа работает как обычно. А если нажимаем кнопку "Отмена", то программа просто завершается, не создавая никакой главной формы совсем. И в любом случае форма TForm2 уничтожается, освобождая занятые ею системные ресурсы.


Думкин   (2006-04-28 07:24:00) [2]

Если телепатировать и получить телепатему, что показать лучше сразу 5-ю, а не первую, которая главная, то можно поиграть со свойством показа MainForm.
При этом видимо имеется в виду прямой ход - когда все формы создаются сразу в *.dpr
При этом надо обеспечить показ той самой пятой при Application.Run() или в еще где...и подумать о том как будем заканчивать приложение.


balepa   (2006-04-28 07:00:00) [3]

Hitkliff купи уже книжку по дельфи хоть где учат за 21 секунду и много подобных вопросов отпадет.


ЮЮ   (2006-04-28 03:22:00) [4]


> не первая форма а например 5-ая


Пересчитай из с другой стороны и 5-ая станет первой.
В приложении может быть только одна главная форма. Её закрытие означает закрытие приложения. Первая созданная форма я вляется главной формой приложения (см. Project Source). Для недостаточно опытных персон лучше не править сам код проекта, у установить главную форму с помощью Дельфи: закладка Project>Optioms>Forms


Vlad   (2006-04-27 18:12:00) [5]


> Hitkliff ©   (27.04.06 17:19) [2]
> всмысле?


.dpr


sicilla   (2006-04-27 18:03:00) [6]

Открой project option в меню, тама выбери основную форму.


Hitkliff   (2006-04-27 17:19:00) [7]

всмысле?


Плохиш   (2006-04-27 17:18:00) [8]

Файл проекта открой и посмотри.


Наверх

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