Библиотека Интернет Индустрии I2R.ru |
|||
|
Программирование в Delphi. Примеры работы с компонентами VCL DelphiИтак, настало время творчески подойти к тем возможностям, которые предоставляют компоненты VCL Delphi. В предыдущей статье мы кратко рассмотрели компоненты, расположенные на закладках Standard и Additional. Применим полученные знания на практике. Многие начинающие программисты, которые знакомятся с новым для них визуальным языком программирования, начинают с создания программы "Калькулятор". Попробуем и мы создать калькулятор, используя компоненты, находящиеся на закладках Standard и Additional. Для начала запустим Delphi. Готово? Теперь подпишем нашу форму (Form1) заголовком "Калькулятор". Для этого нужно в поле Caption инспектора объектов вписать слово Калькулятор. Во время того, как вы будете вписывать слово, оно автоматически будет прописываться в заголовок формы вместо надписи Form1. Теперь нам нужно добавить на форму поле, в которое будет выводиться результат. Для этого очень подходит компонент Edit (поле для ввода) который находится на закладке Standard. Добавим его на форму. Теперь установим его свойства в инспекторе объектов. Свойству Text присвоим значение 0 (именно это свойство содержит текст, находящийся в поле для ввода). Кроме того, свойству ReadOnly (только чтение) присвоим значение true (истина). Это необходимо для того, чтобы во время работы нашей программы пользователь не мог вводить символы напрямую, без помощи кнопок, в это поле. Теперь добавим на форму две кнопки Button1 и Button2 из закладки Standard панели компонентов. Свойству Caption первой кнопки присвоим значение "Сброс" а второй "Выход". Первая кнопка будет сбрасывать результат вычислений, а вторая позволит выйти из программы. Теперь нужно добавить еще несколько кнопок для ввода чисел и арифметических действий. Для этого очень хорошо подойдут кнопки быстрого доступа SpeedButton. Вы найдете этот компонент на закладке Additional панели компонентов. Расположим четыре ряда по шесть кнопок на форме. В результате должно получиться что-то похожее на нижеприведенный рисунок: Теперь последовательно присвоим свойству Caption для каждой кнопки значения: 0,1,2,3,4:, а также арифметические операции и операции работы с памятью: Поясню, что кнопки работы с
памятью позволяют запомнить любое число, а затем выдать его.
Названия кнопок соответствуют следующим
действиям: Конечно, вы можете расположить кнопки так, как это вам больше нравится. В конце концов, кто создает свое приложение вы или я? Теперь осталось самое
главное - написание кода. Да, несмотря на все ваши
знания компонентов и дизайнерские способности, придется
немного потрудиться над созданием кода. Давайте начнем с
простого: напишем код для кнопок Сброс и Выход.
Мы уже умеем писать программу обработчик для события "нажатие
на кнопку". Дважды щелкнем по кнопке Сброс (или щелкнем
на ней один раз, затем перейдем в окно инспектора объектов,
выберем закладку Events (события) и дважды щелкнем
напротив надписи OnClick). Теперь напишем код
обнуления: Таким образом, при нажатии на кнопку, в поле для ввода Edit1 будет записано значение 0. Для кнопки Выход
напишем следующий код: При нажатии на эту кнопку, форма Form1 закроется. Можете теперь запустить вашу программу при помощи клавиши <F9>, либо с помощью команды главного меню Delphi Run/Run (Запуск/Запуск). Наша программа успешно работает, но реагирует пока только на кнопки Сброс и Выход. Теперь запишем обработчики события нажатия кнопки для всех остальных кнопок. Для кнопки
9: Поясню вышеприведенный код. Сначала мы проверяем, значение, находящееся в поле для ввода. Если оно равно нулю, то мы должны просто вписать в поле нужную цифру вместо нуля. Если же там не ноль, то мы должны приписать эту цифру справа от уже имеющегося числа. Для остальных цифровых кнопок
(кроме кнопки 0) напишем такой же код, как и для кнопки
9, за исключением того, что вместо числа 9 везде
поставим число, соответствующее названию кнопки, например для
кнопки 1: Теперь напишем код для кнопки
0: Здесь мы ничего не пишем, если в поле для ввода стоит ноль, и приписываем ноль справа, если значение поля для ввода не равно нулю. Запустите программу (<F9>) и попробуйте понажимать цифровые кнопки. Все прекрасно работает! Теперь можно смело утверждать, что самое легкое позади. С арифметическими операциями, а уж тем более с памятью будет посложнее. Здесь уже не обойтись без вспомогательных переменных. Я думаю, что читатель знаком с языком Pascal, т.к. дальнейшее повествование будет рассчитано на людей, знающих Паскаль хотя бы на начальном уровне. Поставим перед собой цель пока научиться работать с целыми числами. Попробуем реализовать операцию сложения двух чисел. Итак, вводить какое-либо значение в поле для ввода мы уже можем. Теперь нужно по кнопке + запоминать первое число в какой-либо переменной, а по кнопке = выводить результат сложения в поле для ввода. На первый взгляд довольно простая задача. Но посмотрим: Добавим переменную a в
раздел описания переменных модуля Unit1 (это в самом начале
модуля, в разделе interface): Пусть она пока будет целой
(integer). Теперь нужно при нажатии кнопки + запомнить число,
находящееся в поле для ввода в переменную a и обнулить
поле для ввода (пойдем простым путем): Функция StrToInt преобразует
строковое значение (тип string) в целое (тип integer).
Обратная функция (преобразующая целое значение в
строковое) - это функция IntToStr. Теперь, при
нажатии на кнопку =, осталось сложить введенное число с
запомненным ранее в переменной a: Таким образом, мы преобразуем строку в число, складываем с переменной a, преобразуем число в строку и помещаем результат в поле для ввода. Ради интереса можно посмотреть, какой размер имеет наша программа. Она занимает всего 319 Кбайт в .exe файле! Конечно, это не 96 Кбайт стандартного калькулятора Windows, но все-таки: Конечно, вышеприведенный код не лишен недостатков. Опытные разработчики сразу увидят многие изъяны. Но мы, при создании кода не планировали охватить все хитрости программирования. Код служит лишь для иллюстрации возможностей, предоставляемых средой Delphi. Желающие написать программу "Калькулятор" на Delphi могут с успехом довести дело до конца. Надеюсь, эта статья показала некоторые возможности стандартных компонентов Delphi. Дальнейшие статьи научат вас использовать другие, более мощные возможности Delphi. |
|
2000-2008 г. Все авторские права соблюдены. |
|