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

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

Как показать форму при загрузке приложения. [D6, XP]


vegarulez ©   (2007-03-17 11:55:00) 

Привет всем мастреам!
Подскажите, как можно показать фому(ну на которой допустим расположен рисунок) при загрузке приложения... а потом когда оно запустится, она должна будет закрыться...

Я помню, что когда то делал так... а сечас не могу вспомнить, что я делал, чтобы в прожекте сначала открывалась 2-ая форма, и висела, пока открывается и создаётся 2-ая.

program Project1;

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

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
 Application.Run;
end.


easy   (2007-03-17 17:19:00) [1]

http://dfc.com.ru/download.php?d=login


RASkov   (2007-03-17 16:34:00) [2]

> [9] vegarulez ©   (17.03.07 16:28)

Примерно так:

procedure TForm2.MrOkClick(Sender: TObject);
begin
if Form2.Edit1.Text <> '12345' then ModalResul:=mrOk else ModalResult:=mrCancel;
end;

Program ..;
....

LogoForm:=TLogoForm.Create(nil);
try
if LogoForm.ShowModal <> MrOk then Halt else begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
 Application.Run;
end;
finally
LogoForm.Release;
end;


vegarulez   (2007-03-17 16:29:00) [3]

Код прожекта

program Project2;

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

{$R *.res}

begin
Application.Initialize;
Form2:=TForm2.Create(nil);
try
if Form2.ShowModal <> 1 then Exit;
if Form2.Edit1.Text <> '1234' then Exit;
finally
Form2.Release;
end;

Application.CreateForm(TForm1, Form1);
Application.Run;

end.


vegarulez   (2007-03-17 16:28:00) [4]

Так а как ьеперь форму 2 закрыть???

Там есть 2 поля  логин и пароль TEdit есть кнопочка - Tbutton
При нахатии на кнопку я добавил

procedure TForm2.MrOkClick(Sender: TObject);
begin
if Form2.Edit1.Text <> '12345' then Exit
else
begin
Application.CreateForm(TForm1, Form1);
Application.Run;
Form2.Close;
end;
end;


Form1 то открывается, но Form2 не закрывается - так и висит... :(

Что делаю не так?


RASkov   (2007-03-17 16:20:00) [5]

Controls:
mrOk = idOk;
Windows:
IDOK = 1; ID_OK = IDOK;
......


RASkov   (2007-03-17 16:16:00) [6]

> [6] vegarulez ©   (17.03.07 16:13)

if LogoForm.ShowModal <> 1 then...


vegarulez   (2007-03-17 16:13:00) [7]

Чот yа MrOk ругается - гворит не знаю чо эт такое...


Ант   (2007-03-17 15:31:00) [8]

Чтобы не показывать главную форму, достаточно проскочить мимо Application.Run;

Application.Initialize;
LogoForm:=TLogoForm.Create(nil);
try
 if LogoForm.ShowModal <> MrOk then Exit;
 if LogoForm.EditPassword.Text <> '12345' then Exit;
finally
 LogoForm.Release;
end

Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;


vegarulez   (2007-03-17 15:18:00) [9]

Ок спасибо. Попробовал.

Но мне надо немного другое...
Я хочу вывести форму, допустим в которой будет - типа введите логин и пароль.... и 2 поля...  и когда эти два поля при нажатии кнопочки совпадут с тем что требуется, то тогда показывать главную форму, а эту закрывать.

В противном случае, если логин и пароль не те, что требуются, то закрывать и эту форму и не показывать главной формы, т.е. полностью программу закрывать.


Ант   (2007-03-17 15:01:00) [10]

Главной формной в приложении  (по закрытию которой приложение закрывается)является та форма, которая  первой сохдана с параметром Owner = Application/

То есть в файле DPR создаешь форму с овнер = nil

LogoForm:=TLogoForm.Create(nil);
LogoForm.Show;
LogoForm.Refresh;

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
LogoForm.Release;
Application.Run;


vegarulez   (2007-03-17 14:49:00) [11]

А если на форме 2, которую хочу выводить содержится допустим кнопка, и только при нажатии кнопки пока зывать форму 1?....


-=Le][=-   (2007-03-17 12:55:00) [12]

Я тоже немогу вспомнить как ты это делал! Попробуй:

program Project1;
uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1};
 ULogo in 'ULogo.pas' {LogoForm};

{$R *.RES}

begin
 Application.Initialize; {до этого момента никаких изменений}

 with TLogoForm.Create(Application) do
 try
   Show;
   Update;
   Application.CreateForm(TForm1, Form1);
 finally
   Free;
 end;

 Application.Run;
end.


Наверх

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