Что в коде не так?

Помогите пожалуста.Мне надо чтобы работало нормально.У меня есть 2 едита и 1 кнопка,тут у меня есть код но,подскажыте как переделать,что бы когда ничево не вводиш в 2 едита,и нажал на кнопку то чтобы выбивало сообщение,если ввел в едит 1 то вибивало что введите имя,если в 2 едите написали имя а едите 1 нет то чтобы писало ввести фамилию.Если Входит админ то может редактировать данние,а если простой пользователь то нет...Просто код сложыте мне так чтобы работало нормально!!!???
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if (Edit1.Text='')and(Edit2.Text='') then
ShowMessage('Введіть прізвище і ім"я');
if (Edit1.Text<>'')and(Edit2.Text='') then
ShowMessage('Введіть ім"я');
if (Edit1.Text='')and(Edit2.Text<>'') then
ShowMessage('Введіть прізвище');
 
if (Edit1.Text='Admin')and(Edit2.Text='Admin')then
begin
Form2.Free;
Form1.Show;
Form1.DBGrid1.Enabled:=true;
Form1.N5.Enabled:=true;
Form1.N6.Enabled:=true;
Form1.N7.Enabled:=true;
Form1.SpeedButton1.Enabled:=true;
Form1.SpeedButton2.Enabled:=true;
Form1.SpeedButton3.Enabled:=true;
Form4.DBGrid1.Enabled:=true;
Form4.BitBtn1.Enabled:=true;
Form4.BitBtn2.Enabled:=true;
Form4.BitBtn3.Enabled:=true;
end
else
begin
Form2.Free;
Form1.Show;
Form1.DBGrid1.Enabled:=false;
Form1.N5.Enabled:=false;
Form1.N6.Enabled:=false;
Form1.N7.Enabled:=false;
Form1.SpeedButton1.Enabled:=false;
Form1.SpeedButton2.Enabled:=false;
Form1.SpeedButton3.Enabled:=false;
Form4.DBGrid1.Enabled:=false;
Form4.BitBtn1.Enabled:=false;
Form4.BitBtn2.Enabled:=false;
Form4.BitBtn3.Enabled:=false;
3 ответа

Толково сформулировано !


У меня есть 2 Эдита и одна кнопка. Мне нужно этот код в нормальное состояние привести. Он является здесь написано но чтобы делал нормально. Когда я ничего не введу в 1-й и 2-й Эдиты и когда нажму кнопку, то чтобы выбило сообщения: Введите фамилию и имя. Когда я введу фамилию только по имени ни то нажав на кнопку выбило: Введите имя ' я и на оборот. И далее тамтой код. Просто сделайте как он должен правильно быть написано?


Тогда код будет такой:
Procedure TForm2.BitBtn1Click(Sender: TObject);
Var
  Name, 
  NickName : String;
  IsAdmin : Boolean;
Begin
  Name := Edit1.Text;
  NickName := Edit2.Text;
 
  If (Name = '') And (NickName = '') then
    Raise Exception.Create('Введите прозвище и имя.');
 
  // Проверка ввода прозвища
  If NickName = '' then
    Raise Exception.Create('Введите прозвище.');
 
  // Проверка ввода имени
  If Name = '' then
    Raise Exception.Create('Введите имя.');
 
  IsAdmin := (Name = 'Admin') And (NickName = 'Admin');
 
  // Закрыть форму 2
  Form2.Close;
 
  // Изменить доступность элементов управления
  Form1.DBGrid1.Enabled := IsAdmin;
  Form1.N5.Enabled := IsAdmin;
  Form1.N6.Enabled := IsAdmin;
  Form1.N7.Enabled := IsAdmin;
  Form1.SpeedButton1.Enabled := IsAdmin;
  Form1.SpeedButton2.Enabled := IsAdmin;
  Form1.SpeedButton3.Enabled := IsAdmin;
  
  Form4.DBGrid1.Enabled := IsAdmin;
  Form4.BitBtn1.Enabled := IsAdmin;
  Form4.BitBtn2.Enabled := IsAdmin;
  Form4.BitBtn3.Enabled := IsAdmin;
 
  // Показать форму 1
  Form1.Show;
end;
В вашем коде была грубая ошибка. Вы удаляли объект формы 2 (Form2.Free) внутри метода этой самой формы.