Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
ВнизКак программно загрузить форму Найти похожие ветки
← →
P0tia (2003-10-22 17:04) [0]и выгрузить.
← →
Семен Сорокин (2003-10-22 17:14) [1]Form1.Load - загрузить
Form1.Unload - выгрузить
← →
Style (2003-10-22 17:14) [2]А можно поконкретней??
А то я только такое могу ответить:
TLoadedForm.LoadMethod := "Програмно" Ж:-)
TLoadedForm.Load();
80)
← →
Arm79 (2003-10-22 17:16) [3]Form2:=TForm2.Create(Application);
...
Form2.Free;
← →
P0tia (2003-10-22 17:25) [4]У меня такая вещ. Нужно сначало показать форму с вводом пароля и не загружать основную форму, а потом выгрузить первуую и показать основную.
← →
Style (2003-10-22 17:29) [5]P0tia © А зачем тебе ее загружать выгружать :)
Сделай на OnCreate главной формы
такое:
var
frm: TPasswordForm;
begin
frm := TPasswordForm.Create(self)
try
frm.ShowModal;
finally
frm.Free;
end;
← →
Nikolay M. (2003-10-22 17:30) [6]try
Application. CreateForm (TfChangeUserPassword, fChangeUserPassword);
fChangeUserPassword.ShowModal;
finally
fChangeUserPassword. Release;
end;
← →
P0tia (2003-10-22 17:36) [7]А как поставить условие для finally?
← →
Anatoly Podgoretsky (2003-10-22 17:37) [8]P0tia © (22.10.03 17:36) [7]
для finally не существует условий
← →
P0tia (2003-10-22 17:51) [9]Это в проэкте.
begin
Application.Initialize;
Application.CreateForm(TDataModule1, DataModule1);
try
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
finally
Form2.Release;
end;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
А это на форме.
procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
form2.Release;
end;
Но после второва главная форма не показывается.
← →
Игорь Шевченко (2003-10-22 17:57) [10]
> try
> Application.CreateForm (TfChangeUserPassword, fChangeUserPassword);
> fChangeUserPassword.ShowModal;
> finally
> fChangeUserPassword.Release;
> end;
Может, имелось в виду:
Application.CreateForm (TfChangeUserPassword, ChangeUserPassword);
try
...
???
← →
P0tia (2003-10-22 17:59) [11]У меня почемуто форма не показывается. После close в Form2
← →
Anatoly Podgoretsky (2003-10-22 18:00) [12]После close в Form2 форма закрывается.
← →
P0tia (2003-10-22 18:19) [13]А что нужно указать чтобы убить программу и что указать чтобы форма загрузилась?
← →
icWasya (2003-10-22 18:22) [14]в файле проекта (DPR).
Application.CreateForm(TLoginForm,LoginForm);
if LoginForm.ShowModal=mrOk then begin
LoginForm.Update;
Application.CreateForm (TMainForm, MainForm);
MainForm.Update;
FreeAndLil(FormLogin);
end;
← →
P0tia (2003-10-22 18:25) [15]
> icWasya © (22.10.03 18:22) [14]
Не понимает mrOk и FreeAndLil
← →
icWasya (2003-10-22 18:42) [16]>Не понимает
uses
Controls,Sysutils,Windows
← →
P0tia (2003-10-22 18:44) [17]Все есть всеравно не понимает FreeAndLil
← →
icWasya (2003-10-22 18:48) [18]sorry FreeAndNil
вдогонку
ModalResult=mrOK -
внутри формы при не правилной проверке пароля закрывать форму Close, а при правильной - ModalResult:=mrOK
например
Procedure TLoginForm.Button1Click(Sender:TObject);
begin
if CheckPassword then
ModalResult:=mrOK
else
Close
end;
← →
P0tia (2003-10-22 21:38) [19]у меня в конце кода
begin
Application.Initialize;
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TForm2, Form2);
if Form2.ShowModal=mrOk then begin
Form2.Update;
Application.CreateForm(TForm1, Form1);
Form1.Update;
FreeAndNil(Form2);
end;
Application.Run;
...
procedure TForm2.Button1Click(Sender: TObject);
begin
ModalResult:=mrOK;
end;
Вся программа закрывается. Form1 выполняет FormDestroy.
← →
zapped (2003-10-23 11:44) [20]вот рабочий пример :))
program Project1;
uses
Forms,
Controls,
SysUtils,
Unit1 in "Unit1.pas" {Form1},
Unit2 in "Unit2.pas" {Form2};
{$R *.RES}
begin
Application.Initialize;
Form2 := TForm2.Create(Application);
// Application.CreateForm(TForm2, Form2);
if Form2.ShowModal = mrOk then
begin
Application.CreateForm(TForm1, Form1);
Form1.Show;
FreeAndNil(Form2);
Application.Run;
end
else
Application.Terminate;
end.
...
procedure TForm2.Button1Click(Sender: TObject);
begin
ModalResult:=mrOK;
end;
...
дело в том, что первый вызов Application.CreateForm(TForm2, Form2); заставляет "думать" Application, что Form2 - главная форма приложения, а, как известно, приложение завершается при закрытии главной формы...
← →
zapped (2003-10-23 11:47) [21]имеется в виду: первый вызов Application.CreateForm, - в данном случае Application.CreateForm(TForm2, Form2);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c