СООБЩЕНИЯ ОПЕРАТОРУ, Сообщение о программе, Листинг программы - Руководство оператора
Сообщение о программе
Программа "AdressBook. ехе" выдает сообщение о программе, при выборе в главном меню пункта "О программе" во вкладке "Помощь" показанное на рис. 1
Рис.1
Листинг программы
Unit Main;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, CheckLst, Buttons, Mask, Menus, UC_AdrBook;
Type
TMainForm = class(TForm)
StatusBar: TStatusBar;
SpeedBarBottom: TPanel;
BtAdd: TButton;
BtModify: TButton;
BtClear: TButton;
BtDelete: TButton;
BtExit: TButton;
AdrPanel: TPanel;
LbGroup: TLabel;
LbBirth: TLabel;
LbComment: TLabel;
LbMonth: TLabel;
LbYear: TLabel;
EdSurname: TLabeledEdit;
EdName: TLabeledEdit;
EdPatrName: TLabeledEdit;
EdHomeTel: TLabeledEdit;
EdHomeAdr: TLabeledEdit;
EdWorkTel: TLabeledEdit;
EdWorkAdr: TLabeledEdit;
EdMobiTel: TLabeledEdit;
EdGroup: TComboBox;
EdCity: TLabeledEdit;
EdCountry: TLabeledEdit;
EdBirth: TMaskEdit;
EdComment: TMemo;
EdEMail: TLabeledEdit;
EdICQ: TLabeledEdit;
EdWeb: TLabeledEdit;
AdressList: TListBox;
SpeedBarTopAdr: TPanel;
Cancel: TSpeedButton;
OK: TSpeedButton;
EdGroupArr: TComboBox;
GroupsBox: TCheckListBox;
AdrSplitter: TSplitter;
MainMenu: TMainMenu;
FileMenu: TMenuItem;
FileNew: TMenuItem;
FileOpen: TMenuItem;
FileSave: TMenuItem;
FileSaveAs: TMenuItem;
N1: TMenuItem;
FileExit: TMenuItem;
BaseMenu: TMenuItem;
Add1: TMenuItem;
Modify1: TMenuItem;
ClearFields1: TMenuItem;
Delete1: TMenuItem;
Find1: TMenuItem;
HelpMenu: TMenuItem;
HelpAbout: TMenuItem;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
N2: TMenuItem;
SortAdr: TMenuItem;
Procedure FileExitClick(Sender: TObject);
Procedure btAddClick(Sender: TObject);
Procedure AdressListClick(Sender: TObject);
Procedure FileOpenClick(Sender: TObject);
Procedure FileNewClick(Sender: TObject);
Procedure FileSaveClick(Sender: TObject);
Procedure FileSaveAsClick(Sender: TObject);
Procedure FormCreate(Sender: TObject);
Procedure btClearClick(Sender: TObject);
Procedure OKClick(Sender: TObject);
Procedure SortAdrClick(Sender: TObject);
Procedure btDeleteClick(Sender: TObject);
Procedure btModifyClick(Sender: TObject);
Procedure FormResize(Sender: TObject);
Procedure GroupsBoxClick(Sender: TObject);
Procedure HelpAboutClick(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
AdressBook : TPeople;
Procedure UpdateCountBase;
End;
Var
MainForm: TMainForm;
Implementation
Uses About;
{$R *.dfm}
Procedure TMainForm. FileExitClick(Sender: TObject);
Begin
Close;
End;{procedure TMainForm. FileExitClick}
Procedure TMainForm. btAddClick(Sender: TObject);
Begin
AdressBook. Add(edName. Text, edPatrName. Text, edSurname. Text,
EdHomeTel. Text, edWorkTel. Text, edMobiTel. Text, edICQ. Text,
EdGroup. ItemIndex, edEMail. Text, edHomeAdr. Text, edWorkAdr. Text, edWeb. Text,
EdCountry. Text, edCity. Text, UC_StrToDate (edBirth. Text), edComment. Text);
AdressList. Items. Add(edSurname. Text+', '+edName. Text+' '+edPatrName. Text);
UpdateCountBase;
End;{procedure TMainForm. btAddClick}
Procedure TMainForm. AdressListClick(Sender: TObject);
Var
Name, PatrName, Surname : NamString;
HomeTel, WorkTel, MobiTel, ICQ : TelString;
Group : GrpType;
EMail, HomeAdress, WorkAdress, Web : AdrString;
Country, City : PlcString;
BirthDay : TUC_Date;
Comments : CusString;
K : Integer;
P : pointer;
Year, Month : string;
Begin
K := AdressList. ItemIndex;
If (k >= 0) and (AdressList. Items. Count > 0) then begin
P := AdressBook. FindItem(AdressList. Items. Strings[k]);
If p <> nil then AdressBook. GetItem(p, Name, PatrName, Surname,
HomeTel, WorkTel, MobiTel, ICQ, Group, EMail, HomeAdress, WorkAdress, Web,
Country, City, BirthDay, Comments);
EdName. Text := Name;
EdPatrName. Text := PatrName;
EdSurname. Text := Surname;
EdHomeTel. Text := HomeTel;
EdWorkTel. Text := WorkTel;
EdMobiTel. Text := MobiTel;
EdICQ. Text := ICQ;
EdGroup. ItemIndex := Group;
EdHomeAdr. Text := HomeAdress;
EdWorkAdr. Text := WorkAdress;
EdWeb. Text := Web;
EdEMail. Text := EMail;
EdCountry. Text := Country;
EdCity. Text := City;
EdBirth. Text := UC_DateToStr(BirthDay);
EdComment. Text := Comments;
If (Birthday. Day = 1) and (Birthday. Month = 1) and (Birthday. Year = 1000) then begin
LbYear. Caption := 'Год по китайскому гороскопу: ?';
LbMonth. Caption := 'Знак зодиака: ?';
End else begin
Zodiac(BirthDay, Month, Year);
LbYear. Caption := 'Год по китайскому гороскопу: ' + Year;
LbMonth. Caption := 'Знак зодиака: ' + Month;
End;
End;{if (AdressListBox. ItemIndex>=0) and (AdressListBox. Items. Count>0)}
End;{procedure TMainForm. AdressListBoxClick}
Procedure TMainForm. FileOpenClick(Sender: TObject);
Begin
If OpenDialog. Execute then begin
Case OpenDialog. FilterIndex of
1: begin
FAdrWay := OpenDialog. FileName;
AssignFile(FAdr, FAdrWay);
Reset(FAdr);
AdressBook. Clear;
AdressList. Items. Clear;
AdressBook. ReadFromFile(FAdr);
AdressList. Items := AdressBook. FillTStrings;
OKClick(FileOpen);
CloseFile(FAdr);
End;
End;{case OpenDialog. FilterIndex}
End;{if OpenDialog. Execute}
UpdateCountBase;
End;{procedure TMainForm. FileOpenClick}
Procedure TMainForm. FileNewClick(Sender: TObject);
Var
I : Integer;
Begin
AdressList. Items. Clear;
AdressBook. Clear;
For I := 0 to 8 do GroupsBox. Checked[I] := True;
BtClearClick(nil);
OKClick(nil);
FAdrWay := '';
UpdateCountBase;
End;{procedure TMainForm. FileNewClick}
Procedure TMainForm. FileSaveClick(Sender: TObject);
Begin
If FAdrWay <> '' then begin
AssignFile(FAdr, FAdrWay);
Rewrite(FAdr);
AdressBook. SaveToFile(FAdr);
CloseFile(FAdr);
AdressList. SetFocus;
End else FileSaveAsClick(nil);
UpdateCountBase;
End;{procedure TMainForm. FileSaveClick}
Procedure TMainForm. FileSaveAsClick(Sender: TObject);
Begin
If SaveDialog. Execute then begin
Case SaveDialog. FilterIndex of
1 : begin
FAdrWay := SaveDialog. FileName;
If Copy(FAdrWay, Length(FAdrWay)-3,1)<>'.' then FAdrWay:= FAdrWay +'.adb';
End;
End;{case SaveDialog. FilterIndex}
End;{if SaveDialog. Execute}
FileSaveClick(nil);
End;{procedure TMainForm. FileSaveAsClick}
Procedure TMainForm. FormCreate(Sender: TObject);
Var
I : Integer;
Begin
AdressBook := TPeople. Create;
UpdateCountBase;
OKClick(nil);
BtClearClick(nil);
For I := 0 to 8 do GroupsBox. Checked[I] := True;
End;{procedure TMainForm. FormCreate}
Procedure TMainForm. btClearClick(Sender: TObject);
Begin
EdName. Text:='';
EdPatrName. Text:='';
EdSurname. Text:='';
EdHomeTel. Text:='';
EdWorkTel. Text:='';
EdMobiTel. Text:='';
EdHomeAdr. Text:='';
EdWorkAdr. Text:='';
EdGroup. ItemIndex:=8;
EdEMail. Text:='';
EdComment. Text:='';
EdBirth. Text:='01.01.1000';
EdCity. Text:='';
EdCountry. Text:='';
UpdateCountBase;
End;{procedure TMainForm. btClearClick}
Procedure TMainForm. OKClick(Sender: TObject);
Var
I : Byte;
Begin
If Sender <> FileOpen then
For I := 0 to 5 do GroupArr[I] := edGroupArr. Items. Strings[I];
For I := 0 to 8 do begin
GroupsBox. Items. Strings[I] := GroupArr[I];
EdGroup. Items. Strings[I] := GroupArr[I];
End;{for I := 0 to 8}
End;{procedure TMainForm. OKClick}
Procedure TMainForm. SortAdrClick(Sender: TObject);
Begin
SortAdr. Checked := not SortAdr. Checked;
AdressList. Sorted := SortAdr. Checked;
End;{procedure TMainForm. SortClick}
Procedure TMainForm. btDeleteClick(Sender: TObject);
Var
Ind : Integer;
Begin
Ind := AdressList. ItemIndex;
If (AdressList. Items. Count>0) and (Ind>=0) then begin
If AdressBook. Delete(AdressBook. FindItem(AdressList. Items. Strings[Ind]))
Then AdressList. Items. Delete(Ind);
If Ind = 0 then AdressList. ItemIndex := 0 else AdressList. ItemIndex :=Ind-1;
End;{if (AdressList. Items. Count>0) and (Ind>=0)}
AdressList. SetFocus;
UpdateCountBase;
End;{procedure TMainForm. btDeleteClick}
Procedure TMainForm. UpdateCountBase;
Begin
StatusBar. Panels. Items[0].Text := 'Count in base: ' + IntToStr(AdressBook. Count) +
', count in list: ' + IntToStr(AdressList. Items. Count);
End;{procedure TMainForm. UpdateCountBase}
Procedure TMainForm. btModifyClick(Sender: TObject);
Var
K : Integer;
Begin
K := AdressList. ItemIndex;
If (AdressList. Items. Count > k) and (k >= 0) then begin
AdressBook. Modify(AdressBook. FindItem(AdressList. Items. Strings[k]),
EdName. Text, edPatrName. Text, edSurname. Text, edHomeTel. Text,
EdWorkTel. Text, edMobiTel. Text, edICQ. Text, edGroup. ItemIndex,
EdEMail. Text, edHomeAdr. Text, edWorkAdr. Text, edWeb. Text, edCountry. Text,
EdCity. Text, UC_StrToDate(edBirth. Text), edComment. Text);
AdressList. Items. Strings[k] := edSurname. Text+', '+edName. Text+' '+edPatrName. Text;
End;
UpdateCountBase;
End;{procedure TMainForm. btModifyClick}
Procedure TMainForm. FormResize(Sender: TObject);
Var
I : Integer;
Begin
I := Trunc(SpeedBarBottom. Width/5);
BtAdd. Left := 1; btAdd. Width := I;
BtModify. Left := I; btModify. Width := I;
BtClear. Left := I*2; btClear. Width := I;
BtDelete. Left := I*3; btDelete. Width := I;
BtExit. Left := I*4; btExit. Width := I;
End;{procedure TMainForm. FormResize}
Procedure TMainForm. GroupsBoxClick(Sender: TObject);
Var
I : Integer;
Grp : GrpArr;
Begin
AdressList. Items. Clear;
For I := 0 to 8 do Grp[I] := GroupsBox. Checked[I];
AdressList. Items := AdressBook. FillItemsByGroup(Grp);
UpdateCountBase;
AdressList. SetFocus;
End;{procedure TMainForm. GroupsBoxClick}
Procedure TMainForm. HelpAboutClick(Sender: TObject);
Begin
AboutBox. Show;
End;
End.
Похожие статьи
-
Минимальный состав аппаратных средств Минимальный состав используемых технических (аппаратных) средств: IBM PC совместимый с процессором 80386 и выше ОЗУ...
-
Функциональное назначение программы Основной функцией программы "AdressBook. exe" является ведение справочника. Имеется возможность добавлять и удалять...
-
Примеры операторов вызова процедур - Структурирование программы
T; {нет списка фактических параметров Summa(x, y,z); {x, y,z - фактические параметры; x: integer; у, z; real} a(z); {z - фактический параметр, z:d} При...
-
Выполнение функции добавление человека в базу данных По нажатию на кнопку "Добавить" или сочетанием клавиш Ctrl+A произойдет добавление человека в базу...
-
Проверка программы на примере задачи. Для работы с программой запускаем файл TabSimMethod. exe рис.1. Рис.1 Файл TabSimMethod. exe Запустится программа...
-
Рекурсивная программа построения снежинки Написать программу, строящую на экране изображение: Изображение строится по следующему правилу: строится...
-
Формулировка задания: Составьте программу подсчета числа тех гласных букв в слове X, что не используются в написании слова Z. Описание входных/выходных и...
-
Namespace Sklad { Partial class Form1 { /// <summary> /// Required designer variable. /// </summary> Private System. ComponentModel. IContainer...
-
Первая программа - движение слева направо Просмотрите код Unit1.pas для нашего примера: Unit Unit1; Interface Uses Windows, Messages, SysUtils, Variants,...
-
РАБОТА ПРОГРАММЫ, ЛИСТИНГ И ТЕСТИРОВАНИЕ - Основы программирования в операционной системе Unix
После входа в операционную систему Mandriva Mageia нужно перейти в консоль, затем в директорию с программой - командой "cd KR". Чтобы просмотреть список...
-
Синтаксис объявления класса в языке С++ имеет следующий вид: Class<имя класса>: <спецификатор доступа><имя базового класса> { Элементы класса...
-
Листинг программы. Описание VRazmer VARIABLE 250+INT(RN1#250/350);размер от 250 до 350 INITIAL X$XTerminal,1;какой терминал обслуживается INITIAL...
-
АННОТАЦИЯ - Руководство оператора
В данном программном документе приведено руководство оператора по применению и эксплуатации программы "AdressBook. ехе", предназначенной для ведения...
-
Руководство оператора - Разработка электронного учебного пособия "VBA. Решение задач"
1.6.2.1 Назначение программы Назначение и функции Основным назначением электронного учебного пособия является помощь студентам БСК при изучении...
-
Таблица сопротивлений некоторых термометров сопротивления Температурав °C Pt100 Pt1000 Typ: 404 Typ: 501 -50 80, 31 803, 1 -40 84, 27 842, 7 -30 88, 22...
-
Общие сведения о программе Программа разработана для демонстрации возможностей языка C++ и может использоваться для пользователей, которые не знакомы с...
-
Пример программы построения анимации - Работа с языком Турбо Паскаль
Unit unit1; Interface uses graph; Type arpo = array [1..4] of PointType; {хранит коорд. Вершин прямоугольника} { Справка: PointType = Record X, Y :...
-
Рекурсивные процедуры и функции - Структурирование программы
Подпрограмма, вызывающая саму себя, называется рекурсивной подпрограммой. При каждом новом обращении к подпрограмме параметры, которые она использует,...
-
Программа на языке Бейсик - Составление программы для решения системы уравнений
10 REM 20 DIM A(20,20),B(20),X(20) 30 READ N 40 FOR I=1 TO N: FOR J=1 TO N 60 READ A(I, J) : NEXT J 80 READ B(I) : NEXT I 90 REM Vibor elementa 100 FOR...
-
В процессе разработки интерфейса уделялось большое внимание его упрощению для того, чтобы пользователь с минимальными знаниями и навыками в работе с...
-
Рисунок 9.1 - Логическая схема процедуры Runge Рисунок 9.2 - Логическая схема для вычисления кинематических и силовых характеристик четырехмассовой...
-
Литература, Текст программы - Разработка визуального редактора
1. Методические указания по выполнению курсовых и дипломных проектов. Специальность: 2-40 02 01 "Программное обеспечение информационных технологий"; 2....
-
Локальные и глобальные параметры - Структурирование программы
Параметры, объявленные внутри подпрограммы и доступные только ей самой, называются локальными. В разделе описаний подпрограммы могут встретиться описания...
-
Линейная зависимость - Составление программы для решения системы уравнений
Рассмотрим подробнее аппроксимирующие зависимости Y(x)=f(x, B 0 ,B 1,..., B N ) с двумя параметрами: Y(x)=f(x, B 0 ,B 1 ) Используя соотношения (1) и...
-
Программная документация Модуля включает: Руководство системного программиста; Руководство оператора. Программная документация должна быть оформлена...
-
Пользователя - Структурирование программы
Для того, чтобы часто используемые типы данных, константы, переменные, процедуры и функции не описывать заново в каждой программе, их описания,...
-
Тип "Запись" (Record) и оператор присоединения With - Записи в Турбо Паскале
Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается...
-
Выходные данные просматриваются во входной форме. Выходится отчет "Карточка ребенка" или общая статистика дошкольного учреждения. Методы В разработанном...
-
Вычислить приближенное значение определенного интеграла с подынтегральной функцией f(x) заданным методом и проверить точность вычислений по формуле...
-
ПРОЦЕДУРНЫЕ ТИПЫ, ТИП ОБЪЕКТ - Типы данных в программе Турбо Паскаль
Процедурные типы -- это нововведение фирмы Borland (в стандартном Паскале таких типов нет). Основное назначение этих типов -- дать программисту гибкие...
-
СТРОКИ, ФАЙЛЫ - Типы данных в программе Турбо Паскаль
Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY [0..N] OF CHAR,...
-
Заключение - Информационная система Вуза
Разработанный программный продукт позволяет решать достаточного широкий круг задач, связанных с оптимизацией учебного процесса некоторого Вуза. Данный...
-
Порядок виконання роботи, Практична частина - Оператор циклу з параметром
Проробити контрольний приклад. Виконати самостійну роботу. Оформити звіт. Вимоги до оформлення звіту приведені в п. 6. 3. Захистити лабораторну роботу....
-
Процесс симуляции работы системы заканчивается выводом отчета о результатах моделирования. Основные характеристики модели: START TIME END TIME BLOCKS...
-
А - Разработка программы на языке C++, реализующей игру "Морской бой"
ТЕКСТ ПРОГРАММЫ Текст программы состоит из следующих модулей: UShipBattle. h, UShipBattle. cpp, ShipBattle. cpp ShipBattle. cpp // - #include <vcl. h>...
-
Описание и использование процедур и функций Подпрограмма - это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная...
-
Для замеров производительности использовалось три запроса, представляющих три наиболее типичные проблемные рассчеты. Ниже приведены эти запросы на языке...
-
Введение - Программа расчета агрегатов по накапливающимся данным для построения отчетов
Бесчисленное количество веб-приложений полагается на базы данных. Нередко архитектура этих баз данных недальновидна с самого начала, а постоянно...
-
MapReduce, Кеш - Программа расчета агрегатов по накапливающимся данным для построения отчетов
MapReduce -- модель распределенных вычислений, используемая для параллельных вычислений над большими объемами данных в кластерах. MapReduce позволяет...
-
База данные кеширование денормализация Предлагаемое решение -- скомбинировать некоторые идеи кеширования и денормализации в специальной библиотеке...
СООБЩЕНИЯ ОПЕРАТОРУ, Сообщение о программе, Листинг программы - Руководство оператора