Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Й этап. Создание программного кода

ЛАБОРАТОРНАЯ РАБОТА № 7_1

Изучение класса TList.

Приложение, позволяющее создавать список абонентов телефонного узла.

 

Требования к знаниям:

Назначение, методы и особенности класса TList

 

Класс TList

Класс TList используется в качестве основы для создания списков общего назначения. Кроме того, TList можно использовать как класс-контейнер для хранения в списках объектов любого типа. В большинстве случаев, чтобы использовать класс TList, необходимо создать два собственных класса: один — для элементов, предназначенных для хранения в списке, а другой — для самого списка.

Задание: Напишите приложение, позволяющее создавать список абонентов телефонного узла.

 

1. Создайте новый проект. Сохраните новое приложение в папке PhoneBook — файл модуля под именем Main.pas, файл про­екта — PhoneBook.dpr.

Й этап. Создадим визуальный интерфейс приложения (см.рисунок)

Поместите на форму семь компонентов Label, четыре Edit, два SpinEdit, один Button и один MaskEdit (Addition) и один StatusBar,

Измените значения свойства Caption компонентов Label, Forml и Buttonl в соответствии с рисунком.

Очистите свойство Text компонентов Edit, свойства Name компонентов установите следующим образом:

Компонент Свойство Значение
Form1 Name MainF
Edit1 Name LastNameEdt
Edit2 Name NameEdt
Edit3 Name PatronymicEdt
Edit4 Name StreetEdt
SpinEdit1 Name HouseSE
SpinEdit2 Name FlatSE
Buttonl Name AddBtn
MaskEdit1 Name PhoneME
  AutoSelect False
  EditMask ! 00-00-00; 1; _
StatusBarl Panels[0].Text Количество записей
  Panels[0].Width  
  Panels[l].Text  
  Panels[l].Width  
  Panels[2].Text Номер
  Panels[2].Width  
  Panels[3].Text  

 

Свойство EditMask используют, чтобы обеспечить ввод дан­ных в соответствии с заданной маской. Если пользователь вво­дит несовместимые с заданной маской символы, MaskEdit игно­рирует их.

Для ввода номера телефона используется маска:! 00-00-00; 1; _ Маска состоит из трех полей, разделенных символом точка с запятой. Первая часть определяет собственно маску. Для по­строения маски используются специальные символы:

! Поле заполняется слева направо

0 Цифра (0-9) или знак (+/-) обязательны

_ Автоматически вставляет пробел в указанной позиции

> Все символы справа от указанной позиции переводятся в верхний регистр

< Все символы слева от указанной позиции переводятся в нижний регистр

,:; / - () Разделители

L Буква обязательна

Примечание. Другие символы, используемые для создания маски, можно посмотреть в справочной системе Delphi.

Таким образом, поле Телефон определен как шестизначный номер, цифры которого разбиваются по парам и будут заполняться слева направо.

Вторая часть маски определяет, сохранять ли невводимые символы как данные. Значение параметра, равное нулю, показывает, что свойство Text для примера содержит 6 символов (невводимые символы (в примере — «-») не сохраняются). Любое другое значение параметра заставляет сохранять невводимые символы в свойстве Text (для примера свойство Text будет содержать 8 символов). В примере параметр равен единице, невводимые символы будут сохраняться в свойстве Text.

Третья часть определяет символ, определяющий поля маски, которые необходимо заполнить. В примере это символ «_».

й этап. Создание программного кода

Предположим, что длина полей LastName (фамилия), Name (имя), Patronymic (отчество) не превосходит 25 символов, а Street (улица) — 40 символов. Измените свойства MaxLength компонентов Edit в соответствии с введенными ограничениями.

Опишем два новых типа:

Type

PMyList = ^AList;

AList = record

LastName: string[25];

Name: string[25];

Patronymic: string[25];

Street: string[40];

House: integer;

Flat: integer;

Phone: string[8];

End;

В разделе private описания класса TMainF опишите переменные:

MyList: TList; {для хранения введенных записей}

ARecord: PMyList; {для формирования полей одной записи}

Yk: Integer; {указатель перемещения по записям MyList}

 

При запуске приложения создадим объект MyList типа TList:

procedure TMainF.FormCreate (Sender: TObject);

Begin

MyList: = TList.Create; {выделение памяти под объект MyList}

Yk: =-1;

End;

При завершении работы с приложением освободим память, выделенную под объект MyList:

procedure TMainF.FormDestroy(Sender: TObject);

Begin

MyList.Free;

end;

Для добавления записи опишем обработчик события OnClick кнопки Добавить:

procedure TMainF.AddBtnClick(Sender: TObject);

Begin

New (ARecord); {выделяем место под запись}

with Arecord^ do

begin {заполняем поля записи}

LastName: =LastNameEdt.Text;

Name: =NameEdt.Text;

Patronymic: = PatronymicEdt.Text;

Street: =StreetEdt.Text;

House: =HouseSE.Value;

Flat: =FlatSE.Value;

Phone: = PhoneME.Text;

end;

MyList. Add (ARecord); {добавляем запись в объект MyList}

inc (yk); {увеличиваем значение указателя}

StatusBar1.Panels[1].Text: =IntToStr(MyList.Count);

{отображаем количество записей в панели статуса}

StatusBar1.Panels[3].Text: =IntToStr(yk+1);

{отображаем номер отображаемой записи в панели статуса}

end;

 

<== предыдущая лекция | следующая лекция ==>
Теоритическая часть. В зависимости от обрабатываемого материала, условий резания, геометрии режущего инструмента изменяется характер стружки | Краткие теоретические сведения. тема: “Решение задачи линейного программирования”




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.