ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2024
Просмотров: 129
Скачиваний: 0
Приводимая в примере процедура для понятности была разделена на несколько операций, но могла состоять и из одной строки:
ShowMessage(FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)));
Также во втором случае не понадобилось бы объявлять переменные, так как программа оперировала бы напрямую со значениями, содержащимися в полях ввода Edit, а если быть точнее – в свойствах Text компонентов Edit.
В результате проделанных действий, листинг программы примет следующий вид:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a+b;
ShowMessage('Сумма a и b равна '+FloatToStr(c));
end;
end.
После проделанных действий необходимо нажать клавишу «F9», чтобы программа запустилась, ввести числа в оба поля ввода Edit и нажать кнопку. Если все сделано правильно, программа отобразит сообщение, в котором приводится сумма введенных вами чисел.
1.2. Контрольные вопросы
1. Что такое Delphi.
2. Какие технологии включает Delphi?
3. В чем заключается преимущество объектно-ориентированной модели программных компонент?
4. Опишите главные окна Delphi.
5. Сохранение проекта Delphi.
6. Структура программы Delphi.
7. Как задать переменную в Delphi?
1.3. Задания
1. Написать программу, вычисляющую частное от деления двух целых чисел.
2. Даны два числа. Написать программу, определяющую среднее арифметическое этих чисел.
3. Написать программу, которая суммирует произвольное количество целых чисел.
4. Написать программу, которая определяет площадь прямоугольника со сторонами a и b.
5. Написать программу, которая определяет периметр прямоугольника со сторонами a и b.
6. Написать программу, которая определяет произведение двух отрицательных чисел.
7. Даны катеты прямоугольного треугольника. Написать программу, вычисляющую гипотенузу.
8. Даны основания и высота трапеции. Написать программу, вычисляющую ее площадь.
9. Написать программу, определяющую площадь прямоугольного параллелепипеда.
10. Написать программу, определяющую площадь поверхности круглого конуса.
Тема № 2 компоненты delphi
Цель работы: научиться создавать форму, использовать компоненты Delphi.
2.1. Теоретическая часть
Объект - совокупность свойств, методов, событий. Объект как бы состоит из методов, свойств и событий, и они обеспечивают его полноценную работу. Представим себе кнопку. Она обладает:
свойствами (цвет, текст на кнопке, шрифт текста и т. д.);
событиями (например, нажатие на кнопку);
методами (например, метод прорисовки текста, фокуса и т. д.).
Если все это объединить, то получается автономный объект, который может работать в различных условиях. В этом случае достаточно только установить кнопку на форме, и она уже готова к применению.
Свойства - это переменные, которые влияют на состояние объекта.
Методы - это те же процедуры и функции, т. е. это то, что объект умеет делать. Например, объект может иметь процедуру для вывода какого-то текста на экран. Эта процедура и есть метод, который принадлежит объекту.
События - это те же процедуры и функции, которые вызываются при наступлении определенного события. Например, если изменилось какое-то свойство объекта, может быть сгенерировано соответствующее событие и вызвана процедура, которая инициализирует реакцию приложения на это событие.
Рассмотрим пример. Пусть пользователь нажал на кнопку. В этом случае она, как объект, генерирует соответствующее событие. В результате этого может быть вызвана процедура-обработчик, которую вы назначили кнопке при возникновении данного события. В этом случае не требуется никакая дополнительная информация, поэтому объект не будет пересылать вам никаких параметров, кроме указателя на самого себя. Однако, если нужно обработать событие, связанное с перемещением курсора мыши, дело будет обстоять несколько иначе. В этом случае объект будет генерировать событие и автоматически передавать вам новые координаты X и Y курсора, поэтому процедура должна быть объявлена с соответствующими параметрами, чтобы можно было принять их от объекта.
Компоненты в Delphi — это особые объекты, которые являются строительными кирпичиками среды визуальной разработки и приспособлены к визуальной установке свойств.
Под компонентом понимается некий функциональный элемент, содержащий определенные свойства. Как правило, компоненты представляют собой элементы, из которых конструируется видимое изображение, создаваемое работающей программой. Однако существует значительное количество компонентов, которые не создают видимого изображения. Отдельные компоненты могут входить в другие компоненты. Компоненты, которые могут включать в себя другие компоненты называют контейнерами. Такая зависимость позволяет упростить управление ими. Например, для того, чтобы уничтожить окно со всеми включенными в него компонентами, достаточно уничтожить окно.
Компоненты располагаются на соответствующих вкладках палитры компонентов на главном окне. Все основные компоненты Delphi находятся на первых четырёх вкладках (при стандартной их расстановке). Их названия всплывают в виде подсказок при наведении мышки на пиктограммы. Чтобы перенести компонент на форму, нужно щёлкнуть на нем мышкой, и затем щёлкнуть в том месте формы, где его предполагается разместить.
Таблица 1 - Основные элементы палитры компонентов Delphi
Пикто-грамма |
Имя |
Назначение |
Вкладка «Standard» |
||
MainMenu |
Главное меню программы. Компонент способен создавать и обслуживать сложные иерархические меню. |
|
PopupMenu |
Всплывающее меню. Обычно это меню появляется после нажатия правой кнопкой мыши. |
|
Label |
Метка. Используется для размещения не очень длинных сообщений в виде статического текста |
|
Edit |
Строка ввода. Предназначена для ввода пользователем текстовой информации в виде одной строки. |
|
Memo |
Многострочный текстовый редактор. Используется для ввода и отображения многострочного текста без функций форматирования. |
|
Button |
Командная кнопка. Используется для реализации в программе команд с помощью обработчика события onclick этого компонента. |
|
CheckBox |
Независимый переключатель. Используется его свойство Checked (отмечено), имеющее значения true или false, меняющееся при щелчке мышью. |
|
RadioButton |
Зависимый переключатель. Используется для выбора одного из нескольких вариантов. Для этого компонент объединяется как минимум с одним или компонентом в группу. Щелчок по компоненту приводит к его выделению и снятию выделения ранее выбранного компонента. |
|
ListBox |
Список выбора. Содержит список предлагаемых вариантов (опций) и даёт возможность проконтролировать текущий выбор. |
|
ComboBox |
"Выпадающий" список выбора. Представляет собой комбинацию компонентов Edit и ListBox. |
|
GroupBox |
Контейнер группы компонентов. Используется для группировки нескольких связанных по смыслу компонентов. |
|
RadioGroup |
Группа зависимых переключателей. Содержит специальные свойства для обслуживания нескольких связанных зависимых переключателей. |
|
Panel |
Панель. Этот компонент, как и GroupBox, служит для объединения нескольких компонентов. |
|
Вкладка «Additional» |
||
StringGrid |
Таблица, содержащая строки. Компонент StringGrid предназначен в первую очередь для отображения таблиц текстовой информации. |
|
Bevel |
Фаска. Имеет декоративное назначение. |
|
Splitter |
Разделитель. Предоставляет пользователю возможность перемещать границы, разделяющие различные визуальные компоненты, изменяя их относительные размеры. |
MainMenu – это невизуальный компонент, т.е. место его размещения на форме в процессе проектирования не имеет никакого значения для пользователя - он увидит не сам компонент, а меню, сгенерированное им.
Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Основное свойство компонента - Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов.
Из контекстного меню вы можете также выполнить команду "Create Submenu", позволяющую ввести подменю в выделенный раздел.
Свойство Caption обозначает надпись раздела. Если вы в качестве значения Caption очередного раздела введен символ минус «-», то вместо раздела в меню появится разделитель.
Свойство Shortcut определяет клавиши быстрого доступа к разделу меню – «горячие» клавиши, с помощью которых пользователь, не заходя в меню, может в любой момент вызвать выполнение процедуры, связанной с данным разделом.
PopupMenu - контекстное меню привязано к конкретным компонентам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет правой кнопкой мыши. Формирование контекстного всплывающего меню производится с помощью Конструктора Меню, вызываемого двойным щелчком на PopupMenu, точно так же, как это делалось для главного меню.
Label - используется для отображения различных надписей на форме. Отображаемый текст определяется значением свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Например: Label1.Caption := 'Новый текст';
Если требуется отобразить числовую информацию, можно воспользоваться функциями FloatToStr и IntToStr, переводящими соответственно числа с плавающей запятой и целые в строку. Для формирования текста, состоящего из нескольких фрагментов, можно использовать операцию «+», которая для строк означает их склеивание. Например, если в программе имеется целая переменная I, отображающая число сотрудников некоторой организации, то вывести в метку Label1 информацию об этом можно оператором: Label1.Caption := 'Число сотрудников: '+IntToStr(I);
В Label имеется свойство Wordwrap – допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку. Чтобы такой перенос мог осуществляться, надо установить свойство WordWrap в true, свойство AutoSize в false (чтобы размер компонента не определялся размером надписи) и сделать высоту компонента такой, чтобы в нем могло поместиться несколько строк. Если WordWrap не установлено в true при AutoSize равном false, то длинный текст, не помещающийся в рамке метки, просто обрезается.
Edit – строка ввода. В компоненте Edit вводимый и выводимый текст содержится в свойстве Text. Это свойство можно устанавливать в процессе проектирования или задавать программно.
Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Имеются также свойства только времени выполнения SelLength, SelStart, SelText, определяющие соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст. Если вы хотите, чтобы пользователь мог вводить в окно редактирования Edit только цифры и символ точки, вы можете в обработчик события OnKeyPress этого компонента вставить следующий код: if not (Key in ['0'..'9', ',']) then Key := #0;
Свойство MaxLength определяет максимальную длину вводимого текста. Если MaxLength = 0, то длина текста не ограничена.
Свойство Modified, доступное только во время выполнения, показывает, проводилось ли редактирование текста в окне.
Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля. По умолчанию значение PasswordChar равно #0 – нулевому символу. В этом случае это обычное окно редактирования. Но если в свойстве указать иной символ (например, символ звездочки «*»), то при вводе пользователем текста в окне будут появляться именно эти символы, а не те, которые вводит пользователь.
Memo - является компонентом для редактирования многострочного текста. В компоненте Memo формат (шрифт, его атрибуты, выравнивание) одинаков для всего текста и определяется свойством Font. Основное свойство компонента Memo - Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Весь текст, представленный одной строкой типа String, внутри которой используются разделители типа символов возврата каретки и перевода строки, содержится в свойстве Text.
Доступ к отдельной строке текста можно получить с помощью свойства Strings[Index: Integer]. Индексы, как и везде в Delphi, начинаются с 0. Так что Memo1.Lines.Strings[0] - это текст первой строки. Учтите, что если окно редактирования изменяется в размерах при работе с приложением и свойство WordWrap = true, то индексы строк будут изменяться при переносах строк, так что в этих случаях индекс мало о чем говорит.
Свойство только для чтения Count указывает число строк в тексте.
Для очистки текста в окне надо выполнить метод Clear.
Для занесения новой строки в конец текста окна редактирования можно воспользоваться методами Add или Append свойства Lines. Для загрузки текста из файла применяется метод LoadFromFile. Сохранение текста в фале осуществляется методом SaveToFile.