• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

2 формы

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

SaN4oS

Народ,как сделать чтобы при запуске программы открывалось 2 формы,при этом чтобы одна была под другой и не была активна до тех пор,пока в активной не введёшь нужные данные
 
Народ,как сделать чтобы при запуске программы открывалось 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) условие в баттоне - так же для понта =))
 
еще неплохо бы отследить, чтобы обычным 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;
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы