2 формы

  • Автор темы SaN4oS
  • Дата начала
S

SaN4oS

Народ,как сделать чтобы при запуске программы открывалось 2 формы,при этом чтобы одна была под другой и не была активна до тех пор,пока в активной не введёшь нужные данные
 
S

Senset

Народ,как сделать чтобы при запуске программы открывалось 2 формы,при этом чтобы одна была под другой и не была активна до тех пор,пока в активной не введёшь нужные данные
Пред_история:
проект запускается с form1.
на form1 полож tbutton.

Создаешь для form1 событие on_show и для buttona - onclick

Теперь жги это:

procedure TForm1.FormShow(Sender: TObject);
begin
form2.Show;
form2.Enabled:=false;
form2.Color:=clgray;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if ioresult=0 then
begin
form2.Enabled:=true;
form2.Color:=clbtnface;
end;
end;

после нажатия на кнопку - форма 2 станет доступной
Примечания:
1) смена цветов - для понта
2) условие в баттоне - так же для понта =))
 
M

Mun2

еще неплохо бы отследить, чтобы обычным alt+f4 не закрыть вторую форму, оставив первую при enabled=FALSE;

корректнее так:

при активации главной формы (FMain) форму проверки (FLogin) делаем showmodal
Код:
procedure FMain.FormActivate(Sender: TObject);
begin
FLogin.ShowModal;
end;

кнопка на второй форме с проверкой условия можем ли перейти к главной
Код:
procedure TFLogin.TBtnLoginClick(Sender: TObject);
begin
if "введены нужные данные" then FLogin.Close;
end;

ну и на закрытие второй формы проверочка
чтобы не могли перейти к главной форме просто закрыв окно проверочной формы
Код:
procedure TFLogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caNone;
end;

либо закрыть главную форму при попытке закрыть окно проверки данных
Код:
procedure TFLogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FMain.Close
end;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!