ізації двовимірного масиву, опишемо в розділі змінних масив В«MzapВ»:
var
Mzap: array [1 .. 200] of zap;// оголошення типу масиву записів
типізовану файл являє собою набір типізованих елементів, структура і найменування якого описані у вищезгаданому розділі змінних:
filezap: file of zap;
filenamezap: string;
6. Розробка інтерфейсу
Беручи до увагу поставлену раніше завдання, створюємо на формі такі візуальні компоненти:
- StringGrid - для візуального відображення даних в табличній формі. Шапка таблиці буде повторювати таблицю, зазначену в початковому умови, і заповнюється при відкритті форми. Передвстановлене максимальне кількість рядків - 100, стовпців - 7. Ширини стовпців вибираємо відповідно до розмірністю даних. p> - MEMO-поле для виводу даних, зазначених у умови.
- 5 компонентів edit для завантаження/зміни/видалення записів у базу даних (компоненти мають ширину, відповідну ширинам стобцов, і розташовані навпроти кожного шпальти знизу) (див. рис. 1).
В
Рис.1. Загальний вигляд програми. p> 2 button-а для додавання і видалення запису, названих відповідно виконуваної функції. Так як для відображення інформації в StringGrid використовується текстова форма, передбачено неможливість введення текстових даних в чисельні поля з висновком відповідного повідомлення, а також неможливість внесення В«порожньогоВ» поля, оскільки всі поля бази даних, необхідні для математичного розрахунку по умовами завдання, повинні бути обов'язковими для заповнення. Ці події реєструються спеціальними предвартельнимі умовами і при виявлення невідповідності виводиться вікно, що відображає найменування помилки (див. рис.2 і рис.3).
В
Рис.2. Помилка при додаванні порожнього (пистих) полів. br/>В
Рис.3. Помилка при додаванні НЕ чисельного значення. p> - використані стандартні діалоги OpenDialog і SaveDialog для надання користувачеві можливості візуального вибору імені та шляхи типізований файлу для відкриття або для збереження бази даних (Див. рис.4).
В
Рис.4. Стандартне діалогове вікно для відкриття бази даних. br/>
Для виклику діалогів використано 2 компонента button з відповідними назвами. А для В«обнуленняВ» даних, тобто створення нової бази використовувати компонент button з підписом В«створити базуВ».
Для дублювання функцій програми і створення додаткової зручності роботи з додатком застосований компонент menu з відповідними підміню і підписами кнопок.
Розміщення кнопок та інших полів вибрано для гарантованого зручності роботи з додатком.
7. Лістинг програми
unit EconomInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Menus, StdCtrls, shellapi;
type
TForm1 = class (TForm)
sg1: TStringGrid;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Button1: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
N8: TMenuItem;
procedure FormShow (Sender: TObject);
procedure cleansg (Sender: TObject);
procedure cleanedit (Sender: TObject);
procedure Button4Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure autorachet (Sender: TObject);
procedure Button6Click (Sender: TObject);
procedure Button5Click (Sender: TObject);
procedure Button3Click (Sender: TObject);
procedure sg1Click (Sender: TObject);
procedure N8Click (Sender: TObject);
procedure N5Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
implementation
{$ R *. dfm}
type zap = record// оголошення типу запису
prod: string [80];
onng: longint;
plan: longint;
onkg: longint;
svocep: extended;
end;
var
Mzap: array [1 .. 200] of zap;// оголошення типу масиву записів
filezap: file of zap;
filenamezap: string;
// процедура виконання дій при завантаженні форми
procedure TForm1.FormShow (Sender: TObject),
begin