Компонент Button (кнопка).
Внешний вид:
| Это компонент, представляющий из себя кнопку. Расположен на странице “Standard” палитры компонентов. |
Основные свойства:
Многие свойства компонента Button полностью совпадают с ранее рассмотренными общими свойствами компонентов, но для некоторых свойств требуются дополнительные пояснения, например:
1) несмотря на то, что подсвойство color свойства Font позволяет задать цвет шрифта заголовка кнопки, на самом деле изменения цвета не произойдет, так как этот параметр надо менять в настройках Windows.
2) Знак “&” в заголовке кнопки превращает следующий за ним символ в клавишу мнемонического доступа к этой кнопке. Нажатие <ALT> одновременно с клавишей мнемонического доступа производит то же действие, что и щелчок левой кнопкой мыши на кнопке.
Основные события:
Основным событием компонента Button, котором мы будем пользоваться является событие OnClick.
Пример1: Написать программу, которая завершает работу приложения.
Решение:
|
1) Создать новый проект
|
Компонент Edit (строка ввода).
Внешний вид:
| Это компонент, предназначенный для ввода одной строки текста. Расположен на странице “Standard” палитры компонентов. |
Основные свойства:
Свойство отвечает за: | Название свойства | Примечание |
Содержимое строки ввода | Text |
|
Автоматическое выделение содержимого строки ввода | AutoSelect |
|
Регистр, в котором отображаются текстовые символы в строке ввода | Charcase | При значении ecNormal текстовые символы отображаются в том регистре, в котором они были записаны, при ecLowerCase- текстовые символы отображаются в нижнем регистре, при ecUpperCase-в верхнем регистре |
Ограничение числа вводимых символов | MaxLenght | Указывается максимаальное число символов. |
Отображение любых символов в виде одного определенного символа (как при введении пароля) | PasswordChar | При значении #0 все символы отображаются в нормальном виде, при любом другом значении все символы будут принимать вид символа, который является значением данного свойства |
Запрет изменения содержимого строки ввода | ReadOnly |
|
Основное событие: OnChange
Это событие, которое возникает при изменении содержимого строки ввода
Пример2: Написать программу, которая ждет пока пользователь введет в строку ввода определенный пароль. Если пароль верный, то программа должна сделать доступной кнопку, нажав на которую пользователь сможет завершить работу с программой. Если введен неверный пароль, то программа должна вывести в другой строке ввода соответствующее сообщение
Решение:
1) Создать новый проект
2) Создать кнопку и назвать ее “Exit”
3) Создать два компонента Edit1 и Edit2
4) Для обработчика события OnChange компонента Edit1 ввести код:
If edit1.text=’Delphi’ then
Button1.enabled:=true
Else
Button1.enabled:=false;
Edit2.text:=’Введен неверный пароль !!!’;
5) Для обработчика события кнопки “Exit” ввести код завершения работы программы.
6) Откомпилировать программу.
7) Проверить работу программы.
8) Сохранить программу в рабочей папке под произвольным именем.
Компонент Label (метка).
Внешний вид:
| Это компонент, предназначенный для ввода подписей к другим компонентам. Расположен на странице “Standard” палитры компонентов. |
Основные свойства:
Свойство отвечает за: | Название свойства | Примечание |
Соответствие размера метки длине текста | AutoSize |
|
Размещение на форме | Align | При значении alNone компонент сохраняет расположение принятое при разработке, при alButtom, alTop, alLeft, alRight-компонент располагается вдоль нижнего, верхнего, левого и правого края формы соответственно, при alClient-компонент располагается в клиентской (не занятой части формы). |
Выравнивание содержимого внутри метки | Alignment |
|
Отображение фона метки | Transparent |
|
Возможность переноса текста внутри метки | WordWrap |
|
Основные события:
Метка имеет события, аналогичные некоторым событиям компонента Edit.
Пример3: Написать программу, которая преобразует к верхнему регистру символы, введенные в строку ввода, а затем выводит преобразованные символы в метку.
Решение:
1) Создать новый проект
2) Создать компонент Label1
3) Создать компонент Edit1
4) Для обработчика события OnChange компонента Edit1 ввести код:
Label1.caption:=UpperCase (Edit1.text);
6) Откомпилировать программу
7) Проверить работу программы
8) Сохранить программу в рабочей папке под произвольным именем.
Пояснение: Функция UpperCase () является стандартной функцией, которая возвращает прописные буквы.
Компонент Memo (примечание).
Внешний вид:
| Это компонент, предназначенный для ввода множества строк текста. Расположен на странице “Standard” палитры компонентов. |
Свойства компонента Memo во многом совпадают со свойствами компонента Edit, поэтому перечислим некоторые свойства, отличающиеся от них:
Свойство отвечает за: | Название свойства | Примечание |
Содержимое примечания | Lines |
|
Наличие полос прокрутки | ScrollBars | При значении ssNone полос прокрутки нет, при ssBoth-обе полосы прокрутки, при ssHorizontal-горизонтальная, при ssVertical-вертикальная полосы прокрутки |
Рассмотрим методы LoadFromFile и SaveToFile компонента Memo. LoadFromFile-это метод, который загружает в примечание (в его свойство Lines) содержимое текстового файла. SaveToFile-это метод, который загружает содержимое примечания (его свойство Lines) в текстовый файл.
Пример4: Написать программу, позволяющую загружать определенный текстовый файл, редактировать его и сохранять сделанные изменения в конкретном текстовом файле.
Решение:
1) Создать текстовый файл произвольного содержания и сохранить его в корневом каталоге диска c: под именем “Text1.txt”.
2) Создать новый проект
3) Поместить на форму компонент Memo1 имеющий две полосы прокрутки и занимающий свободную часть формы. Очистить его свойство Lines.
4) Создать на форме две кнопки. Назвать их “Open” и “Save” соответственно.
5) В обработчик события OnClick кнопки “Open” записать код:
memo1.Lines.LoadFromFile (‘c:\Text1.txt’);
6) В обработчик события OnClick кнопки “Save” записать код:
memo1.Lines.SaveToFile (‘c:\Text2.txt’);
7) Откомпилировать проект
8) Проверить работу программы: загрузить файл, провести изменения в тексте, сохранить файл, открыть файл “Text2.txt” в текстовом редакторе и проверить сохранение изменений.
9) Сохранить программу в рабочей папке.
Использование переменных в Object Pascal.
Переменной называется область оперативной памяти компьютера, имеющая свое имя. Переменная имеет некоторое значение, которое можно менять. Переменная должна иметь уникальное, в пределах одной программы, имя для однозначной ссылки на нужную область памяти.
Отметим особенности применения переменных в Object Pascal:
-имя переменной может состоять из букв, цифр, символов подчеркивания, но не может начинаться с цифры. Имя переменной не должно совпадать с зарезервированными словами.
-переменные могут содержать различные типы данных, например целое число, строку символов и так далее. Поэтому сами переменные бывают нескольких типов. Рассмотрим три типа переменных:
integer — переменная, содержащая целое число,
string— переменная, содержащая строку символов,
boolean— переменная, содержащая одно из двух логических значений true или false.
-перед использованием любой переменной ее необходимо объявить. В зависимости от области объявления переменной она может быть глобальной или локальной. Глобальная переменная объявляется в главном модуле формы и доступна из любого места программы.
Схема объявления глобальной переменной:
1) в модуле главной формы в секции interface найти служебное слово var. С этого слова начинается модуль объявления переменных.
2) после слова var вставить пустую строку
3) ввести имя переменной и ее тип в следующем формате:
имя_переменной : тип_переменной;
Схема объявления локальной переменной:
1) войти в обработчик события. Он должен быть представлен в виде готового шаблона, сделанного Delphi.
2) найти строчку со словом begin и вставить перед ней пустую строку
3)в новой строке ввести служебное слово var, это слово означает начало описания блока переменных данной процедуры.
4) после слова var ввести имя переменной и ее тип в следующем формате:
имя_переменной : тип_переменной;
Пример5: В обработчике события OnClick кнопки Button1 объявить по одной переменной целого, строкового и логического типов, например: переменная count — целого типа, переменная name — строкового типа, переменная on_off — логического типа.
Решение:
1) создать новый проект
2) разместить на форме кнопку button1
3) войти в обработчик события OnClick кнопки button1
4) найти строку со словом begin и вставить перед ней пустую строку
5) в новую строку ввести служебное слово var
6) после слова var ввести:
count:integer;
name:string;
on_off:boolean;
Преобразование типов данных.
Иногда бывает необходимо значению переменной одного типа присвоить значение переменной другого типа. Например: вывести значение переменой целого типа в виде значения компонента edit. Свойство text компонента edit может выводить значение переменной типа string, поэтому перед тем как вывести значение переменной типа integer,его необходимо преобразовать в значение переменной типа string. Для преобразование типов данных в Object Pascal существует ряд специальных функций. Рассмотрим две из них: strtoint и inttostr.
Функция strtoint (параметр) преобразует данные типа string в данные типа integer. Параметр — это данные типа string.
Функция inttostr (параметр) преобразует данные типа integer в данные типа string. Параметр — это данные типа integer.
Пример 6: Создать программу-калькулятор, позволяющую пользователю вводить через строки ввода целые числа и получать в строке ввода результат их сложения.
Решение:
1) Создать новый проект
2) Разместить на форме три компонента edit1, edit2, edit3.
3) Свойству text каждого из этих компонентов присвоить значение 0
4) Слева от каждого компонента edit разместить по одному компоненту label (label1, label2, label3) и подписать их соответственно «число1», «число2», «результат»
5) Разместить на форме кнопку и назвать ее «сложение».
6) В обработчике события OnClick кнопки «сложение» объявить три переменных целого типа intdigit1, intdigit2, intdigit3 и три переменных типа string: strdigit1, strdigit2, strdigit3 следующим образом:
var
intdigit1, intdigit2, intdigit3 : integer;
strdigit1, strdigit2, strdigit3 : string;
7) В обработчик события этой же кнопки ввести следующий код:
strdigit1:=edit1.text;
strdigit2:=edit2.text;
intdigit1:=strtoint(strdigit1);
intdigit2:=strtoint(strdigit2);
intdigit3:=intdigit1 + intdigit2;
strdigit3:=inttostr(intdigit3);
edit3.text:=strdigit3;
8) Откомпилировать проект
9) Проверить работу программы
10) Сохранить программу в рабочей папке.
Замечание: Можно этот же код записать одной строкой:
Edit3.text:=inttostr(strtoint(edit1.text)+strtoint(edit2.text))
Но данный код не использует переменных, а значит мы не сможем использовать результат вычисления , если форма будет недоступна.
Результат выполнения программы:
Другие функции преобразования строк
FloatToStr (Value: Extended): string — преобразование значения вещественного выражения value в строку.
StrToFloat(const S: string): Extended — преобразование строки S В вещественное число.
DateToStr (Date: TDateTime): string — преобразование значения даты в выражении Date в строку.
TimeToStr(Time: TDateTime): string — преобразование значения времени в выражении Time в строку.
StrToDateTime(const S: String): TDateTime — преобразование строки S в формат указания даты и времени.
StrToDate(const S: String): TDateTime — преобразование строки S В формат указания даты.
StrToTime(const S: String): TDateTime — преобразование строки S В формат указания времени.
UpperCase(const S: String): String — преобразование символов строки S в строку символов верхнего регистра.
LowerCase(const S: String): String — преобразование символов строоки S в строку символов нижнего регистра.
Trim(const S: string): string — удаление в начале и конце строки S пробелов и управляющих символов.
TrimLeft(const S: string): string — удаление пробелов и управляющих символов в начале строки S.
TrimRight(const S: string): string — удаление пробелов и управляющих символов в конце строки S.
Самостоятельная работа
1. Написать программу «Арифметический калькулятор»
2. Написать программу «Калькулятор тригонометрических функций»
3. Сделать вычислитель корней квадратного уравнения.
4. Отсортировать строки в пеле Мемо1 по расту их длины.
5. Сделать вычислитель корней биквадратного уравнения.
6. В десяти полях Edit переставить местами числа так, чтобы они были отсортированны по возрастанию.
7. В десяти полях Edit переставить местами числа так, чтобы они были отсортированны по убыванию.
8. По введенной в числовом виде дате необходимо вывести название месяца.
9. Числа в поле Memo1 упорядочить по убыванию.
10.При изменеии размера формы, 5 кнопок (4 по углам и 1 в центре) перемещаются вместе с границами формы.
11.Текст из 10 строк поля Мемо1 занести в 10 надписей Label и равномерно разместить их по форме.
12.Текст из поля Мемо1 переписать в поля Мемо2 и Мемо3 так, чтобы в Мемо2 копировались четные строки, а в Мемо3 — н