Коды программ на delphi

Знаний, полученных в предыдущих уроках, достаточно, чтобы приступить к изучению механизмов ввода и вывода данных. Общая схема работы программы примерно такова: пользователь вводит данные, программа их считывает, производит с ними какие-то операции и выдаёт результат. Упрощённо: ввод, обработка, вывод. Что мы уже умеем?

Для ввода данных нам понадобятся такие элементы как текстовое поле ввода (TEdit) или многострочное поле — TMemo, CheckBox или RadioButton для выбора параметров и др. Для вывода можно использовать текстовую метку (TLabel). Теперь разберём программную часть.

Мы уже умеем описывать переменные, знаем, что такое тип данных и какие бывают типы (числа, строки и т.п.) Осталось лишь выяснить как связать визуальные элементы с программным кодом. В примерах, рассмотренных в предыдущих уроках, мы задавали значения переменным вручную (в коде), но это конечно же неприемлемо ни для одной программы. Программа должна быть универсальной и обрабатывать те данные, которые передал пользователь. Для ввода и вывода будут использоваться некоторые функции в Delphi . Что такое функции, зачем они нужны, и как с ними работать, мы рассмотрели на прошлом уроке. Ну что, ближе к делу?

Ввод на примере TEdit

Текстовое поле ввода (TEdit) — простой и в то же время удобный элемент для ввода данных. В поле мы можем ввести и число и текст — никаких ограничений нет. Итак, наша первая задача — узнать, что введено в поле. Для этого мы должны обратиться к свойствам этого объекта. За текст, находящийся в поле, отвечает свойство Text . Именно им мы и воспользуемся.

Попробуем считать число, которое будет введено. Расположим на форме само поле (TEdit) и кнопку (TButton). Создадим обработчик нажатия кнопки и сделаем следующее: объявим переменную целочисленного типа, а затем попробуем поместить в неё значение, которое введено в поле.

procedure TForm1.Button1Click(Sender: TObject);
var A: Integer;
begin
A := Edit1.Text;
end ;

Казалоось бы, всё верно — переменную мы объявили, и просто хотим узнать, что введено в поле. Попробуем запустить ( F9 ) — всё не так просто! Компилятор сообщает об ошибке:

[Error] Unit1.pas: Incompatible types: ‘Integer’ and ‘TCaption’

Здесь сказано, что типы данных Integer и TCaption не соответствуют друг другу. TCaption — это тип данных свойства Text у TEdit. Этот тип «обозначает» текстовую строку, т.е. любые символы. Становится понятнее? В поле ввода мы можем ввести не только цифры, но и буквы и даже любые знаки, какие есть на клавиатуре (а на самом деле — вообще любые символы из кодовой таблицы).

Однако наша переменная — число! Получается, что мы хотим в качестве числа записать символы. Непорядок! Да, вы скажете: но мы ведь будем вводить в поле цифры, а не буквы. Верно, но знает ли об этом компилятор?

Конечно нет. А уговорить его не удастся 🙂

Несоответствие типов данных — частая ошибка. Преобразовывать одни типы данных в другие требуется очень часто. Наш пример — яркое тому подтверждение. Чтобы работать с числом, мы должны введённый текст (именно текст) преобразовать в число.

Преобразования могут выполняться разными способами. Основной из них — применение специальных функций. Функции принимают один из несколько параметров (аргументов), одним из которых является переменная или значение, подлежащее преобразованию. Функция выполняет какие-то операции и возвращает значение нужного нам типа.

Для преобразования текста (строки) в целое число служит функция StrToInt() . Название абсолютно точно отражает назначение функции. У функции единственный параметр — строка, а на выходе получается число. Поэтому, чтобы наш пример работал, мы должны написать так:

procedure TForm1.Button1Click(Sender: TObject);
var A: Integer;
begin
A := StrToInt(Edit1.Text);
end ;

Теперь программа запустится. Попробуем ввести число и нажать кнопку — никакой ответной реакции не наблюдается. Это верно, ведь мы кроме считывания введённого числа ничего не запрограммировали. А теперь попробуем ввести посторонние символы (т.е. не цифры) — программа «вылетит» с сообщением об ошибке:

Читайте также:
Как почистить ноутбук от ненужных программ видео

В сообщении указана и причина возникновения ошибки: » ‘abc’ — неверное целое число «. Как избегать подобных сообщений, а вместо этого выполнять свои действия, мы разберёмся позже.

Вывод данных на примере TLabel

Прежде чем делать вывод, давайте произведём с введённым числом какие-нибудь операции. К примеру, давайте возведём число в квадрат. Как это делается, вы уже знаете. Вывод осуществим в текстовую метку (TLabel).

За текст метки отвечает свойство Caption . В данном случае наши действия должны быть обратными: при вводе мы заносили в переменную введённое в поле значение, а при выводе мы должны значение из переменной перенести в элемент. Caption у TLabel описывается тоже типом данных TCaption , т.е. это текст. А значит мы должны сделать обратное преобразование, т.е. преобразовать число в текстовую строку. Как называется функция для такого перевода, легко догадаться — IntToStr() . Финальный вариант обработчика кнопки:

procedure TForm1.Button1Click(Sender: TObject);
var A: Integer;
begin
A := StrToInt(Edit1.Text);
A := Sqr(A);
Label1.Caption := IntToStr(A)
end ;

Запускаем программу и пробуем:

Простейшая программа ввода-вывода готова.

Где узнать о типах данных свойств?

Очень логичный вопрос — где узнать, какой тип данных имеет свойство элемента, кроме как смотреть сообщения об ошибках? Ответ прост — нам снова поможет редактор кода. После того, как мы ввели имя объекта и поставили точку, появляется список всех доступных команд. Напротив свойств через двоеточие указывается и тип данных:

Обратите внимание, что редактор автоматически отслеживает, какие команды содержатся в коде и в этом списке всегда находятся только те пункты, которые применимы в данной ситуации. Так, если написать » A:=Edit1. «, то в списке будет отсутствовать свойство Text , ведь тип переменной A и тип этого свойства не совпадают:

При написании функции StrToInt() строка свойства Text конечно же появится.

Обобщение сказанного

Библиотека Интернет Индустрии 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 ). Теперь напишем код обнуления:

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=’0′;
end;

Таким образом, при нажатии на кнопку, в поле для ввода Edit1 будет записано значение 0.

Для кнопки Выход напишем следующий код:

procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;

При нажатии на эту кнопку, форма Form1 закроется. Можете теперь запустить вашу программу при помощи клавиши , либо с помощью команды главного меню Delphi Run/Run (Запуск/Запуск). Наша программа успешно работает, но реагирует пока только на кнопки Сброс и Выход . Теперь запишем обработчики события нажатия кнопки для всех остальных кнопок.

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if Edit1.Text<>’0′ then
Edit1.Text:=Edit1.Text+’9′
else
Edit1.Text:=’9′;
end;

Поясню вышеприведенный код. Сначала мы проверяем, значение, находящееся в поле для ввода. Если оно равно нулю, то мы должны просто вписать в поле нужную цифру вместо нуля. Если же там не ноль, то мы должны приписать эту цифру справа от уже имеющегося числа.

Для остальных цифровых кнопок (кроме кнопки 0 ) напишем такой же код, как и для кнопки 9 , за исключением того, что вместо числа 9 везде поставим число, соответствующее названию кнопки, например для кнопки 1 :

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if Edit1.Text<>’0′ then
Edit1.Text:=Edit1.Text+’1′
else
Edit1.Text:=’1′;
end;

Теперь напишем код для кнопки 0 :

procedure TForm1.SpeedButton19Click(Sender: TObject);
begin
if Edit1.Text<>’0′ then
Edit1.Text:=Edit1.Text+’0′
end;

Здесь мы ничего не пишем, если в поле для ввода стоит ноль, и приписываем ноль справа, если значение поля для ввода не равно нулю.

Запустите программу () и попробуйте понажимать цифровые кнопки. Все прекрасно работает!

Теперь можно смело утверждать, что самое легкое позади. С арифметическими операциями, а уж тем более с памятью будет посложнее. Здесь уже не обойтись без вспомогательных переменных. Я думаю, что читатель знаком с языком Pascal, т.к. дальнейшее повествование будет рассчитано на людей, знающих Паскаль хотя бы на начальном уровне.

Поставим перед собой цель пока научиться работать с целыми числами. Попробуем реализовать операцию сложения двух чисел. Итак, вводить какое-либо значение в поле для ввода мы уже можем. Теперь нужно по кнопке + запоминать первое число в какой-либо переменной, а по кнопке = выводить результат сложения в поле для ввода. На первый взгляд довольно простая задача. Но посмотрим:

Добавим переменную a в раздел описания переменных модуля Unit1 (это в самом начале модуля, в разделе interface):

var
Form1: TForm1;
a: integer;

Пусть она пока будет целой (integer). Теперь нужно при нажатии кнопки + запомнить число, находящееся в поле для ввода в переменную a и обнулить поле для ввода (пойдем простым путем):

procedure TForm1.SpeedButton22Click(Sender: TObject);
begin
a:=StrToInt(Edit1.Text);
Edit1.Text:=’0′;
end;

Функция StrToInt преобразует строковое значение (тип string) в целое (тип integer). Обратная функция (преобразующая целое значение в строковое) — это функция IntToStr. Теперь, при нажатии на кнопку =, осталось сложить введенное число с запомненным ранее в переменной a :

procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+a);
end;

Таким образом, мы преобразуем строку в число, складываем с переменной a, преобразуем число в строку и помещаем результат в поле для ввода.

Читайте также:
Программа чтобы рисовать на фотографиях на Айфоне

Ради интереса можно посмотреть, какой размер имеет наша программа. Она занимает всего 319 Кбайт в .exe файле! Конечно, это не 96 Кбайт стандартного калькулятора Windows, но все-таки:

Конечно, вышеприведенный код не лишен недостатков. Опытные разработчики сразу увидят многие изъяны. Но мы, при создании кода не планировали охватить все хитрости программирования. Код служит лишь для иллюстрации возможностей, предоставляемых средой Delphi. Желающие написать программу «Калькулятор» на Delphi могут с успехом довести дело до конца.

Надеюсь, эта статья показала некоторые возможности стандартных компонентов Delphi. Дальнейшие статьи научат вас использовать другие, более мощные возможности Delphi.

Источник: www.i2r.ru

Программирование на Delphi с алгоритмами и кодами (стр. 1 из 2)

Целью данной курсовой работы является выполнение заданий на Delphi по предмету “программирование на языках высокого уровня».

Данная работа содержит три задачи, написанные на Delphi. Это задачи на разные темы, в которых применяются различные элементы языка программирования и компоненты Delphi.

В первой задаче вычисляется сумма ряда, значение функции, погрешность и строится график функции. Во второй задаче вводим, выводим и преобразуем элементы массива. В третьей задаче используется графика, движение фигуры по определенному контуру.

Для создания программы использовались компоненты из вкладок Standardи Additional:

Button– кнопка;

StringGrid– таблица для отображения каких-либо значений;

Label– компонента, для отображения не редактируемого текста;

Edit– компонент ввода-вывода текстовой строкиж

Panel– панель с надписью;

TChart– компонента для прорисовки графика.

Помимо этого для решения третей задачи были использованы функции API, позволяющие управлять интерфейсом приложений Windows.

Процессор — Intel Pentium 233 МГц и выше

Операционная система — MicrosoftWindowsXP, Windows 2000

Оперативная память — 64 Мбайт (рекомендуется 128 Мбайт)

Пространство на жестком диске — 450 Мбайт

Монитор — SVGA или выше

Другое аппаратное обеспечение — CD-ROM, мышь

Создаем форму и изменяем необходимые свойства главной формы в окне свойств:

Height- ширина формы;

Width- длина формы;

Caption- название формы.

Добавляем на главную форму необходимые элементы управления:

Button– запуск вычислений, открытие окна графика, выход из программы;

StringGrid– отображение таблицы значений x, y, s.

Label– отображение не редактируемого текста;

Edit– ввод данных для вычислений.

Прописываем в компонентах Editтекст по умолчанию в свойство Text.

Изменяем свойства добавленного элемента управления StringGrid:

-ColCount

-RowCount

-FixedCols

-FixedRows

Пишем для кнопок алгоритмы, которые будут выполнять различные действия.Прописываем действие на открытие формы на главной форме работы.

Создаем отдельную форму для графика, на нее помещаем компонент TChart.Пишем команду ее открытия на одну из кнопок.

Запускаем программу с целью проверки ее работоспособности. Сохраняем проект.

План работы для второй задачи

Создаем форму и изменяем необходимые свойства главной формы в окне свойств:

Height- ширина формы;

Width- длина формы;

Caption- название формы.

Добавляем на главную форму необходимые элементы управления:

Button– запуск вычислений, открытие окна графика, выход из программы;

StringGrid– отображение таблицы значений x, y, s.

Label– отображение не редактируемого текста;

Edit– ввод данных для формирования массивов и вывода полученных числовых рядов.

Изменяем свойства добавленного элемента управления StringGrid:

-ColCount

-RowCount

-FixedCols

-FixedRows

Пишем для кнопок алгоритмы, которые будут выполнять различные действия.Прописываем действие на открытие формы на главной форме работы. Запускаем программу с целью проверки ее работоспособности. Сохраняем проект.

План работы для третьей задачи

Создаем форму и изменяем необходимые свойства главной формы в окне свойств:

Height- ширина формы;

Width- длина формы;

Caption- название формы.

Задаем для формы регион, в который она будет вписана.

Пишем алгоритм движения по кромке экрана.Запускаем программу с целью проверки ее работоспособности. Сохраняемпроект.

Кодглавнойпрограммы

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

procedure Button4Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

uses Unit2, Unit4, Unit7;

procedure TForm1.Button4Click(Sender: TObject);

Form1.Close; // закрывает главную форму и приложение

procedure TForm1.Button1Click(Sender: TObject);

form2.showmodal; // показывает форму задания № 1

procedure TForm1.Button2Click(Sender: TObject);

form4.showmodal; // показывает форму задания №2

procedure TForm1.Button3Click(Sender: TObject);

form7.showmodal; // показывает форму задание №3

Источник: smekni.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru