Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label2: TLabel;
Editl: TEdit; // поле введення ваги у фунтах
Button1: TButton; // кнопка Обчислити
Label1: TLabel;
Label2: TLabel;
ListBox1: TListBox; // список країн
Label4: TLabel; // поле виводу результата - ваги в кілограмах
procedure FqrmCreate(Sender: TObject);
procedure ButtonlClick(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForml;
Implementation
{$R *.DFM}
procedure TForml.FormCreate(Sender: TObject);
begin
{
ListBox1.items.add('Росія');
ListBox1.items.add('Австрія');
ListBox1.iterns.add('Англія');
ListBox1.items.add('Німеччина');
ListBox1.iterns.add ('Данія');
ListBoxl.iterns.add('Ісландія');
ListBox1.iterns.add ('Італія');
ListBox1.items.add ('Нідерланди'); }
ListBox1.itemindex:=0;
end;
procedure TForm1.ButtonlClick(Sender: TObject);
var
funt:real; // вага у фунтах
kg:real; // вага в кілограмах
k:real; // коефіцієнт перерахування
begin
case ListBox1.Itemindex of
0: k:=0.4095; // Росія
1: k:=0.453592; // Англія
2:k:=0.56001; // Австрія
3..5,7:k:=0.5; // Німеччина, Данія, Ісландія, Нідерланди
6: k:=0.31762; // Італія
end;
funt:=StrToFloat(Editl.Text);
kg:=k*funt;
label4.caption:=Editl.Text
+ ' ф. - це '
+ FloatToStr(kg) + 'кг.';
end;
end.
Варто звернути увагу на процедуру обробки події FormCreate, що відбувається в момент створення форми (форма створюється автоматично при запуску програми). Цю процедуру можна використати для ініціалізації змінних програми, у тому числі й для додавання елементів у список. У наведеному тексті програми інструкції створення списку закомментовані, тому що список був створений за допомогою редактора рядків під час створення форми.
Завдання. Розробити програму, яка конвертує гривні в долари і навпаки, по заданому курсу валют.
П орядок виконання роботи.
Крок 1: створення нової програми
Виберіть в головному меню пункт File | NewApplication. Якщо з’явиться запит на зберігання поточного файлу, відповідь No.
Зараз активна форма: перейдіть в Object Inspector (Інспектор об’єктів) , поміняйте значення властивості Name на MainForm.
Поміняйте значення властивості Caption на Обмін валюти.
Крок 2: поміщення компонентів
Клацніть на закладці Standard палітрі компонентів і виберіть компонент TButton. Помістіть таких дві кнопки.
Поміняйте значення властивостей кнопок Caption на: Рахувати і Вихід.
На цій же закладці виберіть і помістіть два компоненти TEdit.
Виберіть і помістіть три компоненти TLabel, змініть значення властивості Caption одного з них на Курс. Також помістіть два компонента TRadioButton, змініть значення властивості Caption на USD та Гривні відповідно.
Крок 3: написання коду програми
Клацніть на кнопці Рахувати, перейдіть в Object Inspector (Інспектор об’єктів) на закладку Events (Події), і клацніть на події OnClick двічі, і присвойте текст:
var k1,k2,suma:real;
cod:integer; st:string;
begin
val(Edit1.Text,k1,cod);
val(Edit2.Text,k2,cod);
if RadioButton1.Checked=true then
suma:=k1*k2;
Str(suma:9:1,st);
Label2.Caption:=st+' USD';
if RadioButton2.Checked=true then
suma:=k2/k1;
Str(suma:9:2,st);
Label2.Caption:=st+' ГРН.';
end;
Ці дії будуть конвертувати валюту в залежності від того, який напрямок вибраний за допомогою компонентів RadioButton1 і RadioButton2.
Виберіть кнопку Вихід, і присвойте події OnClick такий текст: Close; ця кнопка буде закривати програму.
Виберіть компонент TRadioButton1 і присвойте події OnClick цей текст: Label1.Caption:='=>';
Відповідно події OnClick компоненту TRadioButton2 стрічку: Label1.Caption:='<=';
Варіанти завдань
Зробити, щоб сума при конвертуванні виводилась на компоненті TEdit.
Замість кнопки Рахувати зробити пункт меню.
Замість стрілки, щоб виводився текст З ГРН в USD і навпаки.
Зробити, щоб замість компоненту TEdit сума виводилась на компоненті TLabel.
[Див. п. 4] зробити так, щоб результат можна було зберігати у файлі.
Зробити так, щоб при конвертуванні програма вираховувала збір у Пенсійний фонд.
[Див. п. 5] зробити, щоб програма показувала суму збору.
Зробити, щоб при виході з програми, відкривалось вікно підтвердження виходу.
Зробити, щоб вибір напрямку конвертування відбувався за допомогою випадаючого списку.
Зробити вікно Про програму. Та кнопку, яка б його викликала.
Завдання Розробити програму, текстового редактора з записом та відкриванням файлів. Зміни шрифту тексту та кольору фону. З можливістю включення скролінгів прокрутки.
П орядок виконання роботи.
Крок 1: створення нової програми
Виберіть в головному меню пункт File | NewApplication. Якщо з’явиться запит на зберігання поточного файлу, відповідь No.
Зараз активна форма: перейдіть в Object Inspector (Інспектор об’єктів) , поміняйте значення властивості Name на MainForm.
Поміняйте значення властивості Caption на NewPad 1.0.
Крок 2: поміщення компонентів
Клацніть на закладці Standard палітрі компонентів і виберіть компонент TButton. Помістіть таких сім кнопок.
Поміняйте значення властивостей кнопок Caption на: Завантажити, Зберегти, Очистка, Шрифт, Колір, Про програму, Закрити.
На цій же закладці виберіть і помістіть компонент Memo.
Виберіть і помістіть компонент TCheckBox, змініть значення властивості Caption на Скролінги. Також помістіть два компонента TRadioButton, змініть значення властивості Caption на Горизонтальна та Вертикальна прокрутка.
Клацніть на закладці Dialogs палітрі компонентів і помістіть компоненти TOpenDialog TSaveDialog, TFontDialog, TColorDialog, на форму.
Крок 3: написання коду програми
Клацніть на кнопці Завантажити, перейдіть в Object Inspector (Інспектор об’єктів) на закладку Events (Події), і клацніть на події OnClick двічі, і присвойте текст:
if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Ця дія дубе відкривати текстовий файл з поміщу компонента OpenDialog1 в компонент Memo.
Виберіть кнопку Зберегти, і присвойте події OnClick, зберігання файлу використовуючи компонент SaveDialog1.
Виберіть кнопку Очистка, вона буде очищати компонент Memo1 від тексту. Присвойте цей текст:
Memo1.Lines.Clear;
Клацніть двічі на кнопці Шрифт, це та сама дія як і OnClick в закладці Events , ця кнопка буде міняти шрифт тексту який знаходиться в Memo1. Присвойте текст:
if FontDialog1.Execute then Memo1.Font:=FontDialog1.Font;
Кнопці Колір, напишіть код для зміни кольору фону використовуючи компонент ColorDialog1.
Компоненту CheckBox1, буде добавляти в Memo1 скролінги, присвойте наступний код:
if CheckBox1.Checked=True then Memo1.ScrollBars:=ssBoth else Memo1.ScrollBars:=ssNone;
Кнопці Про програму присвоїти значення:
ShowMessage(‘Розробив: Сергій & Андрій’);
Кнопці Закрити присвоїти значення:
Close;
Для компонентів TRadioButton напишіть код так щоб перший включав вертикальну прокрутку а другий горизонтальну.
Варіанти завдань
Зробити замість кнопок меню, з такими ж пунктами.
Зробити, знизу стрічку, яка відображала б назву поточного файлу.
Зробити, щоб вид прокрутки вибирався у випадаючому списку.
Зробити, щоб при виході з програми, з'являвся запит на підтвердження.
Зробити, щоб при вході в програму, завантажувався останній файл, з яким працювали.
Зробити, щоб при клацанні на кнопці Clear видавався запит на підтвердження дії.
Зробити, щоб при запуску програми виводилось вікно з інформацією про програму.
Зробити знизу стрічку стану, яка показувала б назву шрифту, та координати курсора.
Зробити дві кнопки Save і Save as....
Зробити, щоб прокрутка вибиралась в меню.
Задание
Создать заданный проект. Изучить свойства и методы используемых компонентов.
Написать простейший текстовый редактор. Для этого поместить на форму компоненты TMainMenu и Tmemo. С помощью первого создать меню, в которое включить пункты Load, Save, Exit (для этого дважды щелкните на компоненте TMainMenu и в открывшемся окне заполните его. Каждый пункт меню имеет свойство Caption - текст, отображаемый в меню, и событие OnClick, возникающее всякий раз когда вы будете щелкать мышкой на этом пункте. В обработчик этого события помещается код, который вы хотите выполнить при выборе этого пункта меню. Например, если вы хотите закрыть форму, этот код будет выглядеть так: Form1.Close;. Для отображения и редактирования текста используется Tmemo. Этот объект имеет свойство Lines (редактируемый текст). Lines - это тоже объект. Он имеет методы SaveToFile и LoadFromFile (см. файл помощи) для сохранения и загрузки текста в файле. Вызов методов осуществляется примерно так: Memo1.Lines.SaveToFile(...).
Создать проект, с помощью которого можно просматривать графические файлы (*.bmp). Поместить на форму компоненты TMainMenu (см. выше) и Timage. У Timage есть свойство Picture (отображаемый рисунок), у которого всвою очередь есть метод LoadFromFile. С помощью этого метода можно загрузить картинку в Timage.
Усовершенствовать проект из 1-й задачи. Добавить возможность выбора файла из стандартного диалога Windows. Для этого со странички Dialogs поместите на форму компоненты TSaveDialog и TOpenDialog. Теперь вместо прямого вызова метода LoadFromFile (SaveToFile), нужно использовать следующий код:
if OpenDialog1.Execute
then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
4. Усовершенствовать проект из 2-й задачи. Добавить возможность выбора файла из стандартных диалогов Windows. (см. выше).
Создать проект, который реализовывал бы следующее. Поместить на форму компонент Ttimer (страница System), два компонента Tedit, и два компонента TLabel.. С помощью этих компонентов организовать показ пользователю системной даты и системного времени (один Tedit и TLabel - для показа даты, другой - для показа времени). Системная дата определяется с помощью функции Date, системное время - функции Time. Обе функции возвращают результат типа TDateTime. Компонент Ttimer имеет событие OnTimer, обработчик которого вызывается через интервалы времени, определенные свойством таймера Interval (в мс). Например, чтобы отобразить системное время, в обработчик события OnTimer таймера надо вставить такой код: Edit1.Text:=DateToStr(Time). Функция DateToStr преобразует переменную типа TDateTime к строковому виду.
Создать проект, который сортирует предложения в текстовом файле. Для этого поместите на форму компонент TListBox, две метки (TLabel) и две строки редактирования (TEdit) и две кнопки. В первой строке редактирования будет вводиться имя входного текстового файла, во второй - выходного. Компонент TListBox будет отображать слова, находящиеся в файле. По нажатию на кнопку эти слова загружаются в список, сортируются и сохраняются в выходном файле. Для сортировки установите свойство Sorted списка в True. Свойство Items характеризует содержимое списка. Чтобы загрузить слова в список используйте такой код: ListBox1.Items.LoadFromFile(Edit1.Text), чтобы сохранить отсортированный список используйте метод SaveToFile.
Усовершенствуйте предыдущий проект. Добавьте контроль на невозможность ввода пустого имени файла. Самый простой способ - это гасить кнопку, чтобы пользователь не мог ее нажать, если не определены оба файла: Button1.Enabled:=(Edit1.Text<>’’).
Создать проект. Поместить на форму TMemo и две кнопки (Load и Save) для загрузки и сохранения файла соответственно (см. задачу №1). Поместить также компонент TCheckBox. Сделать так, чтобы при отмеченном чекбоксе, невозможно было редактировать текст в мемо. Обратите внимание на свойства Checked чекбокса и ReadOnly мемо, а также на обработчик OnClick чекбокса.
Модернизировать задачу №8 следующим образом: заменить чекбокс компонентом TComboBox (комбинированный список). Он представляет собой строку редактирования, значение которой можно выбирать из списка. В список добавить две строки: «Read/Write» и «Read-Only». Содержимое списка задается свойством Items. Во время разработки заполнить комбобокс с помощью данного свойства. Установить свойство Style в csDropDownList. Для контроля режима просмотра текста в мемо использовать событие OnChange:
if ComboBox1.ItemIndex=0
then ...
else ...
Свойство ItemIndex указывает порядковый номер выбранной строки в
списке.
Модернизировать задачу №8. Добавить возможность выбора шрифта для мемо с помощью компонента TFontDialog. Добавить кнопку Set Font..., по нажатию на которую выполнить такой код:
if FontDialog1.Execute then Memo1.Font:=FontDialog1.Font;
Модернизировать задачу №8. Добавить возможность выбора цвета для мемо с помощью компонента TColorDialog. См. предыдущую задачу.
Модернизировать задачу №8. Заменить кнопки pop-up меню (TPopupMenu). Заполняется аналогично TMainMenu. Определить обработчики пунктов меню. Чтобы меню всплывало при нажатии на правую кпопку мыши над мемо, надо установить свойство PopupMenu последнего.