Палитра компонентов Standart
В таблице приведены компоненты страницы Standart.
TFrames | Фрейм (кадр). Компонент визуальный. Панель с возможностями наследования. Проектируется как отдельное окно. Фрейм представляет собой нечто среднее между панелью и формой. |
TMainMenu | Главное меню. Компонент невизуальный. Он позволяет вам поместить главное меню в программу. |
TPopupMenu | Всплывающее меню. Компонент невизуальный. Этот компонент позволяет создавать всплывающее контекстное меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается Popup-Menu аналогично главному меню. |
TLabel | Метка. Компонент визуальный. Этот компонент служит для отображения текста на экране. Вы можете изменить шрифт и цвет метки, если дважды щелкнете на свойстве Font (шрифт) в Инспекторе объектов. Вы увидите, что это легко cделать и во время выполнения программы, написав всего одну строчку кода. |
TEdit | Окно редактирования. Компонент визуальный. Это стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы. |
TMemo | Многострочное окно редактирования. Компонент визуальный. Это иная форма TEdit. Подразумевает работу с большими текстами. ТМето может переносить слова, сохранять в Clipboard (Буфер обмена) фрагменты текста и восстанавливать их. ТМето имеет ограничения на объем текста в 32 Кб, это составляет 10-20 страниц. |
TButton | Командная кнопка. Компонент визуальный. Он позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. Поместив компонент TButton на форму, вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом. |
TCheckBox | Контрольный индикатор с флажком. Компонент визуальный. Он отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню Options | Project, страница Compiler), то можно увидеть, что оно состоит преимущественно из CheckBox'oB. |
TRadioButton | Радиокнопка. Компонент визуальный. Он позволяет выбрать только одну опцию из нескольких. Радиокнопки часто применяются в диалоговых окнах настройки какого-либо элемента операционной среды Windows. Посмотрите программы папки Панель управления. |
TListBox (TComboBox) | Окно списка (выпадающий список). Компонент визуальный. Он нужен для показа прокручиваемого списка. Классический пример ListBox'a в среде Windows — выбор файла из списка в пункте меню File | Open (Файл | Открыть) многих приложений. Названия файлов или директорий и находятся в ListBox'e. |
TScrollBar | Полоса прокрутки. Компонент визуальный. Она появляется автоматически в объектах редактирования ListBox'ax, при необходимости прокрутки текста для просмотра. |
TGroupBox | Групповое окно. Компонент визуальный. Он используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB). |
TRadioGroup | Группа радиокнопок. Компонент визуальный. Является комбинацией группового окна TGroupВох с набором радиокнопок TRadioButton; служит специально для создания групп радиокнопок, но никакие другие органы управления не разрешены. |
TPanel | Панель. Компонент визуальный. Управляющий элемент, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания линейки инструментов и окна статуса. |
TActionList | Список событий. Компонент невизуальный. Обеспечивает диспетчеризацию событий компонентов. |
Создание простейшего приложения Windows.
Задание: Написать программу, которая пересчитывает скорость ветра из "метров в секунду" в "километры в час". Рекомендуемый вид формы приведен на рисунке 1.
В этом упражнении создается программа, в которой щелчок на кнопке пересчитывает скорость ветра из "метров в секунду" в "километры в час".
Рисунок 1. Форма программы «Скорость ветра»
1. Создайте проект. В Строке заголовка формы укажите название окна проекта. Для этого в Инспекторе объектов, в свойстве Caption(заголовок) для формы, запишите: «Скорость ветра». На рис. 1 показан вид формы.
2. На странице Standard(стандартные) выберите компонент TButton(кнопка) и щелкните в любом месте формы. При этом на форме появится кнопка, и в Инспекторе объектов будут отображаться ее свойства. В свойстве Caption(заголовок) для кнопки запишите: «Пересчет.». Впрограммной части появилась запись: Button1: TButton;— объявлен объект Button1,являющийся экземпляром класса TButton.
3. Выберите на странице Standard(стандартные) компонент TLabel(метка). Щелкните на поле формы, на нем появится объект Label1,а Инспектор объектов отобразит его свойства. Свойство Visible(видимый) для объекта Labellнадо оставить True (истина). Это значит, что текст будет видимым. В свойстве Caption (заголовок) запишите: «Программа пересчитывает скорость …» (см. рисунок 1). Выберите параметры для шрифта с помощью свойства Font(шрифт).
4. Создайте аналогично еще две надписи Label2 и Label3.В свойстве Caption запишите: «Скорость (м/с)» для Label2 и « » для Label3.
5. Для того, чтобы при щелчке на кнопке появлялся результат пересчета, надо написать код, обрабатывающий событие «щелчок на кнопке». Выделите кнопку мышью, в Инспекторе объектов откройте лист Events (свойства), на котором выберите событие OnClick(щелчок указателем мыши), и дважды щелкните в пустом поле, находящемся рядом с названием события.
При этом откроется программная часть проекта, в которой добавилась следующая запись:
procedureTForm1.Button1Click(Sender: TObject);
Begin
end;
Это заготовка процедуры обработки события OnClick(щелчок).
Между словами begin (начало) и end(конец) надо записать текст процедуры:
// щелчок на кнопке Пересчет
procedure TForm1.Button1Click(Sender: TObject);
var
ms: integer; // скорость м/с
kmh: real; // скорость км/час
begin
// если поле Edit1 пустое, то при выполнении функции
// StrToInt возникает ошибка.
// Проверим, ввел ли пользователь скорость в поле Edit1
if Length(Edit1.Text) = 0 then
begin
ShowMessage('Надо ввести скорость');
exit; // завершить обработку события
end;
ms := StrToInt(Edit1.Text); // ввести исходные данные
kmh := ms * 3.6; // пересчитать
// вывести результат
Label3.Caption :=
IntToStr(ms) + ' м/с - это ' + FloatToStr(kmh) + ' км/час'
end;
Здесь результат пересчета выводит текстовую надпись Label3.Caption.
6. Сохраните изменения и запустите программу. На этом конструирование проекта приложения закончено. Далее представлен листинг всей программы с комментариями:
Листинг 1.
unit wind2_;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// щелчок на кнопке Пересчет
procedure TForm1.Button1Click(Sender: TObject);
var
ms: integer; // скорость м/с
kmh: real; // скорость км/час
begin
// если поле Edit1 пустое, то при выполнении функции
// StrToInt возникает ошибка.
// Проверим, ввел ли пользователь скорость в поле Edit1
if Length(Edit1.Text) = 0 then
begin
ShowMessage('Надо ввести скорость');
exit; // завершить обработку события
end;
ms:= StrToInt(Edit1.Text); // ввести исходные данные
kmh:= ms * 3.6; // пересчитать
// вывести результат
Label3.Caption := IntToStr(ms)
+ ' м/с - это ' + FloatToStr(kmh) + ' км/час'
end;
// нажатие клавиши в поле Edit1
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// В поле Скорость (Edit1) можно ввести только
// цифры. Процедура проверяет, является ли символ
// допустимым. Если нет, то она заменяет
// введеный символ нулевым. В результате символ
// в поле редактирования не отображается.
// Key - символ, соответствующий нажатой клавише
if not ((Key >= '0') and (Key <='9') or (Key = #8))
then Key := Chr(0);
end;
end.
7. Обратите внимание на процедуру Edit1KeyPress, в которой происходит обработка события – нажатие клавиши клавиатуры для текстового поля Edit1. Процедуре передается параметр <Key> - символ, соответствующий нажатой клавише и далее процедура допускает нажатие клавиш с цифрами и <Backspace>, остальные символы не отображает.
7. Запустите программу на решение, используя кнопку 4 на панели инструментов «Debug» или команду системного меню Run - Run (клавиша F9).
8. Просмотрите и проверьте полученные результаты.
7. Результаты пересчета, диалоговое окно формы и код программы поместите в отчет по лабораторной работе.
9. Для закрепления практических приемов работы выполните упражнение 1 из раздела 3 самостоятельной работы .
2.2 Программа расчета сопротивления электрической цепи
Задание. Разберем следующую задачу. Написать программу, которая вычисляет сопротивление электрической цепи, состоящей из двух сопротивлений. Сопротивления могут быть соединены последовательно или параллельно. Рекомендуемый вид формы приведен на рисунке 2. Если величина сопротивления цепи превышает 1 000 Ом, то результат должен быть выведен в килоомах.
Рисунок 2. Рекомендуемый вид
формы программы.
1. Создайте проект. В Строке заголовка формы укажите название окна проекта.
2. Для задания значений сопротивлений R1 и R2 в форму необходимо добавить два текстовых поля Edit1 и Edit2.
3. Учитывая, что расчетные формулы величины сопротивления зависят от типа соединения, в форму диалогового окна необходимо установить переключатели RadioButton1 и RadioButton2. Переключатели RadioButton1 и RadioButton2зависимые, поэтому о типе соединения можно судить по состоянию одного из них. Значение свойства Checked = true указывает на выбор данного переключателя.
4. Исходный текст программы приведен в листинге 2.
Листинг 2.
unit unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
RadioGroup1: TRadioGroup;
Button1: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label4: TLabel;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// щелчок на кнопке Вычислить
procedure TForm1.Button1Click(Sender: TObject);
var r1,r2: real; // величины сопротивлений
r: real; // сопротивление цепи
begin
// получить исходные данные
r1 := StrToFloat(Edit1.Text);
r2 := StrToFloat(Edit2.Text);
if (r1 = 0) and (r2 = 0) then
begin
ShowMessage('Надо задать величину хотя бы одного сопротивления');
exit;
end;
// переключатели RadioButton1 и RadioButton2
// зависимые, поэтому о типе соединения можно
// судить по состоянию одного из этих
// переключателей
if RadioButton1.Checked
then // выбран переключатель Последовательно
r:= r1+r2
else // выбран переключатель Параллельно
r:= (r1*r2)/(r1+r2);
Label4.Caption := 'Сопротивление цепи: ';
if r < 1000 then
Label4.Caption := Label4.Caption +
FloatToStrF(r,ffGeneral,3,2) + ' Ом'
else
begin
r:=r/1000;
Label4.Caption := Form1.Label4.Caption +
FloatToStrF(r,ffGeneral,3,2) + ' кОм';
end
end;
// щелчок на переключателе Последовательно
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
// пользователь изменил тип соединения
Label4.Caption := '';
end;
// щелчок на переключателе Параллельно
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
// пользователь изменил тип соединения
Label4.Caption := '';
end;
end.
5. Запустите программу на решение, просмотрите и проверьте полученные результаты.
6. Сохраните проект.
7. Результаты работы диалогового окна приложения и код программы поместите в отчет по лабораторной работе.
9. Для закрепления практических приемов работы выполните упражнения 2 и 3 из раздела 3 самостоятельной работы.
2.3 Чтение содержимого текстового файла в окно диалога
Задание. Напишите программу, которая в поле Memo выводит содержимое текстового файла. Для получения от пользователя имени файла используйте стандартное диалоговое окно «Открытие файла». Рекомендуемый вид диалогового окна приведен на рисунке 3.
Рисунок 3. Рекомендуемый вид формы программы просмотра файла.
1. Приступая к решению задач этого раздела, необходимо вспомнить:
- При выполнении файловых операций возможны ошибки.
- Для обработки ошибок выполнения файловых операций нужно использовать инструкцию try ... Except.
2. Создайте проект. В Строке заголовка формы укажите название окна проекта.
3. На окне формы используйте следующие компоненты:
поле Memo для вывода содержимого текстового файла;
командная кнопка для вызова диалогового окна «Открытие файла»;
компонент OpenDialog, при помощи которого открывается стандартное окно диалога «Открытие файла» и выбирается в окне файл. «Открытие файла»;
4. Разберите самостоятельно принцип работы программы. Обратите внимание на то, что очередная прочитанная строка файла добавляется в поле Memo1 при помощи метода Add.
Исходный текст программы приведен в листинге 3.
Листинг 3.
// просмотр-редактирование текстового файла
// щелчок на кнопке Открыть
procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
buf: String[80]; // буфер для чтения строк
begin
if not OpenDialog1.Execute
then { пользователь закрыл диалог
щелчком на кнопе Отмена }
exit;
// пользователь выбрал файл
fName := OpenDialog1.FileName;
Form1.Caption := fName;
AssignFile(f, fName);
try
Reset(f); // открыть для чтения
except
on EInOutError do
begin
ShowMessage('Ошибка доступа к файлу '+
fName);
exit;
end;
end;
// чтение из файла
while not EOF(f) do
begin
readln(f, buf); // прочитать строку из файла
Memo1.Lines.Add(buf); // добавить строку в поле Memo1
end;
CloseFile(f); // закрыть файл
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// Определим фильтр
OpenDialog1.Filter := 'Текст|*.txt';
end;
end.
Дата добавления: 2017-01-26; просмотров: 1300;