Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Палитра компонентов 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 Список событий. Компонент невизуальный. Обеспечивает диспетчеризацию событий компонентов.

 


2. ПРАКТИЧЕСКАЯ РАБОТА

 

2.1 Создание простейшего приложения 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 (щелчок указателем мыши), и дважды щелкните в пустом поле, находящемся рядом с названием со­бытия.

При этом откроется программная часть проекта, в которой добавилась следующая запись:

procedure TForm1.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.


3. САМОСТОЯТЕЛЬНАЯ РАБОТА

 

Задание 1. Написать программу, которая вычисляет силу тока в электрической цепи. Рекомендуемый вид формы приведен на рисунке. Программа должна быть спроектирована таким образом, чтобы кнопка «Вычислить» была доступна только в том случае, если пользователь ввел величину сопротивления.

Рисунок 4. Рекомендуемый вид формы программы.

 

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

 

Задание 2. Написать программу, которая, используя закон Ома, вычисляет силу тока, напряжение или сопротивление электрической цепи. Рекомендуемый вид формы приведен на рис. 5. Во время работы программы, в результате выбора переключателя Ток, Напряжение или Сопротивление, текст, поясняющий назначение полей ввода, должен меняться.

Рисунок 5. Рекомендуемый вид формы программы.

 

Для контроля правильности ввода цифровой информации в текстовые поля используйте следующий код программы:

// Нажатие клавиши в поле Edit1

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9', #8: ; // цифры и < Backspase>

#13: Edit2.SetFocus; // клавиша < Enter>

'.', ', ':

begin

if Key = '.' then Key: = ', ';

// не позволяет вводить знак запятой повторно

if Pos(', ', Edit1.Text) < > 0 then Key: = Chr(0);

end;

else Key: = Chr(0);

end;

end;

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

 

Задание 3. Вычисление площади треугольника.

1. Разработать программу вычисления периметра и площади треугольника по формуле Герона: , где p = (a+b+c)/2 (a, b, c - стороны треугольника).

2. Результаты работы приложения и код программы поместите в отчет по лабораторной работе.

 

Задание 4. Чтение текстового файла результата.

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

2. Результаты работы задачи и код программы поместите в отчет по лабораторной работе.

 


Контрольные вопросы

1. Какие компоненты называют базовыми?

2. Опишите компоненты палитры Standart.

3. Какой метод используется для добавления строки в поле Memo?

4. Опишите элемент управления для выбора одного варианта из нескольких?

5. Как обеспечивается контроль правильности ввода числовой информации?

6. Как обеспечивается контроль возможных ошибок при выполнении файловых операций?

7. Завершая редактирование текстового поля, каким образом обеспечить перенос фокуса ввода на следующее текстовое поле?

8. С какой целью применяют функции StrToFloat и FloatToStr?


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-03; Просмотров: 733; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.155 с.)
Главная | Случайная страница | Обратная связь