- •I: Byte; I: Byte;
- •Связанный список
- •Var Заголовок: Указатель_на_узел;
- •Interface
- •Var a:array[1..10] of ta;
- •Var Key: Char);
- •Var Key: Char);
- •Var Key: Char);
- •Структура модели списка. Модуль построения и редактирования списка
- •Interface
- •Implementation
- •Создание (построение) и опустошение списка
- •Var I:integer;
- •Var temp:pTelem;
- •Вывод содержимого информационных полей списка (прямая и обратная печать)
- •Включение и удаление узлов списка
- •Var I:integer; temp:ptElem;
- •Var I:integer;
- •Поиск узла по номеру
- •Var I:integer;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,Dialogs, StdCtrls,Unit2;
type
TForm1 = class(TForm)
btnDeleteList: TButton;
lblListResult: TLabel;
lblVvodData: TLabel;
edtName: TEdit;
edtMarka: TEdit;
edtNumber: TEdit;
lblName: TLabel;
lblMarka: TLabel;
lblNumber: TLabel;
memListResult: TMemo;
btnCreate: TButton;
btnPrintFirst: TButton;
lblInformation: TLabel;
btnSearchNode: TButton;
lblNodeNumber: TLabel;
edtNodeNumber: TEdit;
btnAddAfterNode: TButton;
btnDeleteNode: TButton;
btnPrintLast: TButton;
procedure btnDeleteListClick(Sender: TObject);
procedure edtNameKeyPress(Sender: TObject;
var Key: Char);
procedure edtMarkaKeyPress(Sender: TObject;
var Key: Char);
procedure edtNumberKeyPress(Sender: TObject;
var Key: Char);
procedure btnCreateClick(Sender: TObject);
procedure btnPrintFirstClick(Sender: TObject);
procedure btnSearchNodeClick(Sender: TObject);
procedure edtNodeNumberKeyPress(Sender: TObject;
var Key: Char);
procedure btnAddAfterNodeClick(Sender: TObject);
procedure btnDeleteNodeClick(Sender: TObject);
procedure btnPrintLastClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
memo1: TMemo;
В таблице 6 приведены свойства основных компонентов:
Таблица 6
Объект |
Свойство |
Значение |
Button1
Button2
Button3
Button4
Button5
Button6
Button7
Memo1 Edit1 Edit2 Edit3 Edit4 Label1
Label2
Label3
Label4
Label5
Label7 |
Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Name Name Name Name Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name |
Удалить список BtnDeleteNode Построить список BtnCreate Печать списка сначала BtnPrintFirst Найти узел по номеру BtnSearchNode Добавить узел в середину BtnAddAfterNode Удалить узел из середины BtnDeleteNode Печать списка с конца BtnPrintLast MemListResult EdtName EdtMarka EdtNumber EdtNodeNumber Протокол работы LblListResult Ввод данных LblVvodData Имя EdtName Марка EdtMarka Номер LblNumber Задайте номер узла LblNodeNumber |
Как видно из текста интерфейсной части модуля Unit1 в нем присутствуют процедуры-обработчики событий (Events) таких, как нажатие кнопок ButtonClick. Так при нажатии кнопки «Удалить список», как показано ниже, внутри процедуры btnDeleteListClick обработчика этого события выполняется вызов процедуры DisposeSpisok из модуля Unit2 :
procedure TForm1.btnDeleteListClick( Sender: TObject);
begin
DisposeList;
memListResult.Lines.Add('СПИСОК УДАЛЕН');
end;
Одновременно с этим, в окно компонента Memo1 эта же процедура выдает сообщение о том, что список удален. Аналогичным образом при нажатии кнопки «Построить список», процедура-обработчик btnCreateClick обеспечивает вызов процедуры CreateList также из модуля Unit2 и она же выдает на панель диалогового окна (Form1) сообщение о количестве узлов построенного списка через свойство компонента-метки lblInformation.Caption (как показано ниже).
procedure TForm1.btnCreateClick(Sender: TObject);
begin
CreateList;
lblInformation.Caption:='Число узлов в списке='
+IntToStr(L.Count);
end;
Следует отметить, что прежде чем создавать список, необходимо заполнить массив записей в каждый элемент которого заносится информация по одному владельцу автомобиля. Описание этого массива выполнено в модуле Unit2:
type TA=record { Автомобиль }
M: String[15]; { Ф.И.О. владельца }
N: String[10]; { Марка }
W: String[14]; { Номер }
end;
