Использование переменных в Object Pascal. Компоненты Button, Edit, Label, Memo, их основные свойства и события — Delphi(Делфи)

Компонент Button (кнопка).

Внешний вид:

ok.jpg (14020 bytes)

Это компонент, представляющий из себя кнопку.

Расположен на странице “Standard” палитры компонентов.

Основные свойства:

Многие свойства компонента Button полностью совпадают с ранее рассмотренными общими свойствами компонентов, но для некоторых свойств требуются дополнительные пояснения, например:

1) несмотря на то, что подсвойство color свойства Font позволяет задать цвет шрифта заголовка кнопки, на самом деле изменения цвета не произойдет, так как этот параметр надо менять в настройках Windows.

2) Знак “&” в заголовке кнопки превращает следующий за ним символ в клавишу мнемонического доступа к этой кнопке. Нажатие <ALT> одновременно с клавишей мнемонического доступа производит то же действие, что и щелчок левой кнопкой мыши на кнопке.

Основные события:

Основным событием компонента Button, котором мы будем пользоваться является событие OnClick.

Пример1: Написать программу, которая завершает работу приложения.

Решение:

wpe8.jpg (29801 bytes)

1) Создать новый проект
2) Разместить на главной форме кнопку (компонент Button1)
3) Назвать кнопку “Выход”.
4) Букву “В” превратить в клавишу мнемонического доступа к кнопке
5) Для обработчика события OnClick кнопки ввести код: close;
6) Откомпилировать программу
7) Проверить работу программы (двумя способами: с помощью мыши и с помощью клавиатуры).
8) Сохранить программу в рабочей папке под произвольным именем.

Компонент Edit (строка ввода).

Внешний вид:

text.jpg (11617 bytes)

Это компонент, предназначенный для ввода одной строки текста.

Расположен на странице “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 (метка).

Внешний вид:

label.jpg (8442 bytes)

Это компонент, предназначенный для ввода подписей к другим компонентам.

Расположен на странице “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 (примечание).

Внешний вид:

memo.jpg (8770 bytes)

Это компонент, предназначенный для ввода множества строк текста.

Расположен на странице “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))
Но данный код не использует переменных, а значит мы не сможем использовать результат вычисления , если форма будет недоступна.

Результат выполнения программы:

wpe3.jpg (7003 bytes)

Другие функции преобразования строк

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 — н

Поделитесь своим мнением или задайте вопрос