Форма входа
Интересное
Опрос
Какие файлы больше всего Вам нравятся?
Всего ответов: 31
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Урок 3 - Конструкция IF...THEN...ELSE20:07

И так, приступим! Конструкцией if...then...else можно проверять какое-нибудь условие, дословно она переводится так: если...то...иначе

Конструкция имеет такой вид:

1 if (условие) then
2 begin
3 //Если условие верно, выполняем действия
4 end
5 else
6 begin
7 //Если условие не верно, выполняем действия
8 end;

Кстати, после двойного слеша "//" пишется комментарий. Он никак не влияет на код программы, потому что компилятор его игнорирует. 

Теперь я попытаюсь вам объяснить всё на практике. Открываем Delphi и создаем новый проект.
Кидаем на форму уже знакомые нам компоненты ButtonLabel 3 штуки и еще не знакомый Edit 2 штуки (он находится правее от компонента Label).

Edit, это Ученик. Ученик, это Edit. Вот я вас и познакомил :)
Извините за мой глупый юмор, Edit это обычное поле ввода, которое встречается в повседневной жизни, например при регистрации на сайте.
Располагаем компоненты так, как показано на рисунке: 

 

Пример формы



Переходим в инспектор объектов и изменяем свойства у компонентов по очереди:

  • Label1.Caption = 'Логин'
  • Label2.Caption = 'Пароль'
  • Label3.AutoSize = False Выставив значение False у свойства AutoSize, мы запретили автоматически менять размер компоненту
  • Label3.Caption = ' ' Когда мы стёрли весь текст, размер компонента не изменился
  • Edit1.Text = ' '
  • Edit2.Text = ' '
  • Button1.Caption = 'Авторизоваться'

Сейчас выделяем компонент Label3 и растягиваем его ширину на всю форму: 
 

Пример формы



Нужно изменить еще одно свойство у компонента Label3, оно называется Alignment и отвечает за выравнивание текста по центру. Выставляем значение taCenter. Теперь весь текст будет появляться в этом лейбле по центру. 

Мы завершили с настройкой формы, теперь создаем обработчик OnClick на нашей кнопке. И так, принцип работы нашей программы: если логин и пароль верны, то оповещаем об этом, иначе - выдаем ошибку. 

Начнем с простого - проверка логина:

01 procedure TForm1.Button1Click(Sender: TObject);
02 begin
03 if Edit1.Text = 'admin' then //Если логин верный, то...
04 begin
05 Label3.Caption:='Вы авторизованны!'//Авторизовываем пользователя
06 end
07 else //Иначе
08 begin
09 Label3.Caption:='Логин не верный!'//Выдаем ошибку
10 end;
11 end;

Компилируем программу и вводим в наш Edit1 слово admin, нажимаем на кнопку и вуаля - Label3 оповестит о том, что мы авторизованы, теперь напишите что-нибудь другое в Edit1 и нажмите на кнопку. Label3 оповестит, что логин не верный.

Идем дальше - проверяем логин и пароль. Так как нужно проверять 2 условия, каждое из условий нужно окружить скобками, а между скобок напишем ключевое слово and:

01 procedure TForm1.Button1Click(Sender: TObject);
02 begin
03 if (Edit1.Text = 'admin'and (Edit2.Text = 'pass'then //Если логин И пароль верны то...
04 begin
05 Label3.Caption:='Вы авторизованны!'//Авторизовываем пользователя
06 end
07 else //Иначе
08 begin
09 Label3.Caption:='Логин ИЛИ пароль не верный!'//Выдаем ошибку
10 end;
11 end;

Компилируем программу и проверяем правильность работы кода.

Идем дальше - так же проверяем логин и пароль, но теперь между условиями напишем ключевое слово or вместо andэто означает что авторизация пройдет если верно хоть одно из условий:

01 procedure TForm1.Button1Click(Sender: TObject);
02 begin
03 if (Edit1.Text = 'admin'or (Edit2.Text = 'pass'then //Если логин ИЛИ пароль верны то...
04 begin
05 Label3.Caption:='Вы авторизованны!'//Авторизовываем пользователя
06 end
07 else //Иначе
08 begin
09 Label3.Caption:='Логин И пароль не верны!'//Выдаем ошибку
10 end;
11 end;

Вернемся к коду, где использовали ключевое слово and между условиями. У нас там выдается ошибка 'Логин ИЛИ пароль не верный', если пользователь ошибся. Давайте сделаем ошибку конкретней, чтобы она сообщала, что именно не верно, логин или пароль? Для этого сотрем нашу не конкретную ошибку и добавим еще 3 конструкции if...then. Вместо знака равенства в условии, мы будем использовать знак не равенства <>

01 procedure TForm1.Button1Click(Sender: TObject);
02 begin
03 if (Edit1.Text = 'admin'and (Edit2.Text = 'pass'then //Если логин И пароль верны то...
04 begin
05 Label3.Caption:='Вы авторизованны!'//Авторизовываем пользователя
06 end
07 else //Иначе
08 begin
09 if Edit1.Text <> 'admin' then //Если логин не верный
10 begin
11 Label3.Caption:='Логин не верный!'//Выдаем ошибку
12 end;
13 if Edit2.Text <> 'pass' then //Если пароль не верный
14 begin
15 Label3.Caption:='Пароль не верный!'//Выдаем ошибку
16 end;
17 if (Edit1.Text <> 'admin'and (Edit2.Text <> 'pass'then //Если логин и пароль не верны
18 begin
19 Label3.Caption:='Логин и пароль не верны!';  //Выдаем ошибку
20 end;
21 end;
22 end;

Компилируем и проверяем! У меня всё работает, а у вас? Пишите в комментариях, если возникли трудности.

Да, чуть не забыл, на последок хочу вам показать еще один компонент, так называемый XPManifest, он находится на вкладке Win32 (самый последний компонент на этой вкладке). XPManifest восстанавливает вид всех компонентов из классического вида в тот, который сейчас используется в системе. Добавив его на форму, мы увидим прекрасные кнопочки :) 

 

Пример работы XPManifest



Задание на закрепление: дополнить в программу несколько пользователей со своими паролями. 

Дата: 02.06.2017 Добавил: WiseStar Просмотров: 598 Загрузок: 11 Комментариев: 0

Добавить комментарий

наверх