Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Палитра компонентов Standart ⇐ ПредыдущаяСтр 6 из 6
В таблице приведены компоненты страницы Standart.
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. Приступая к решению задач этого раздела, необходимо вспомнить:
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; Нарушение авторского права страницы