Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Й этап. Создание программного кода
ЛАБОРАТОРНАЯ РАБОТА № 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 компонентов установите следующим образом:
Свойство 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;
|