Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Если две формы равнозначны,


Автор: MLS 20.2.2006, 21:33
У меня такая проблема. Значит, при запуске программы юзер выбирает в маленьком окошке дальнейший режим работы, и в зависимости от выбора появляется одна из двух форм. Эти формы, по большому счёту, равнозначны, между ними можно переключаться уже в процессе работы. Но беда в том, что если главной сделать одну из этих форм, то при работе со второй будет маленькая проблемка - при сворачивании она появляется не на панели задач, а над кнопкой "Пуск", то есть эта форма работает не как само приложение, а как какое-то дополнительное окно. Как от этого избавиться?
Плюс, ненужная (неактивная) вторая форма висит в памяти и её нельзя выгрузить, а то приложение закроется (это не столь критично, но всё же). Если бы можно было менять главную форму в процессе работы проги, все проблемы решились бы, но так делать, насколько я знаю, нельзя. Если есть варианты, подскажите, пожалуйста.
Всем заранее спасибо.

Автор: Poseidon 20.2.2006, 21:41
http://vingrad.ru/DELPHI-DLP-000389
Добавлено @ 21:41
http://vingrad.ru/DELPHI-DLP-002522

Автор: Демо 20.2.2006, 22:02
Я бы немного изменил пример, в соответствии с условиями задачи:

На форме Form1 лежит Edit1 и кнопка. ПОсле ввода номера формы в Edit и нажатия кнопки происходит возврат и создание соответствующей формы.

Код

program Project1;

uses
  Forms, SysUtils,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};

var
  n: String;
{$R *.res}


begin
  Application.Initialize;
  with TForm1.Create(nil) do
  begin
    ShowModal;
    n := Edit1.Text;
    Free;
  end;
  if n='2' then Application.CreateForm(TForm2, Form2);
  if n='3' then Application.CreateForm(TForm3, Form3);
  Application.Run;
end.


Автор: MLS 20.2.2006, 22:03
Poseidon, спасибо, но это не совсем то, что нужно. В начале в любом случае создаётся стартовая форма, на которой пользователь делает выбор одной из двух рабочих форм. Когда стартовая форма создаётся, она становится главной. Тогда любая из двух форм (в зависимости от выбора) станет как бы дочерней. А мне этого не надо (по описанной выше причине).

Автор: MLS 20.2.2006, 22:45
Демо, спасибо большое! То, что нужно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)