Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
45
Добавлен:
10.12.2013
Размер:
41.98 Кб
Скачать

ВОПР 8

Невидимые компоненты     Не каждый компонент виден на форме во время запуска программы. Например, размещение на форме компонента MainMenu приводит к появлению в разрабатываемом приложении меню, но соответствующая пиктограмма во время запуска программы не отображается. Компоненты, представляющие диалоговые окна общего назначения, вообше никак не визуализируются во время работы программы. Размеры невидимого компонента в процессе разработки не изменяются — он всегда отображается в виде пиктограммы.

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

Технически списки представляют собой массивы нетипизированных указателей на размещенные в динамической памяти элементы. Эти массивы размещаются в куче -отсюда возможность динамического изменения размеров списков; с другой стороны, входящие в списки нетипизированные указатели позволяют ссылаться на произволь­ные элементы.

Свойства класса:

property Capacity : Integer;

Содержит количество элементов массива указателей спи­ска. Всегда больше Count. Если при добавлении очеред­ного элемента Count стало равно Capacity, происходит автоматическое расширение списка на 16 элементов

property Count: Integer;

Количество элементов списка. Это свойство изменяется при добавлении или удалении элемента

property Items (Index: Inte­ger) : Pointer;

Возвращает указатель на элемент списка по его индексу. Самый первый элемент списка имеет индекс 0

property List: pPointerList;

Возвращает указатель на массив элементов списка

TStrings

Абстрактный класс TStrings инкапсулирует поля и методы для работы с набора­ми строк. От него порождены многочисленные специализированные потомки, обслу­живающие наборы строк в таких компонентах, как TComboBox, TListBox, TRichEdit и др. Эти классы (TComboBoxStrings, TListBoxStrings, TRichEditStrings и др.)

объявляются в разделах implementation соответствующих модулей (stdCtrls, ComCtrls и др.) и поэтому скрыты от браузера Delphi и не включены в Help-службу. Единственным доступным наследником TStrings является TStringList - полно­функциональный класс общего назначения.

Замечательной особенностью TStrings и его потомков является то обстоятельст­во, что элементами наборов служат пары строка-объект, в которых строка - собст­венно строка символов, а объект - объект любого класса Delphi, Такая двойствен­ность позволяет сохранять в TStrings объекты с текстовыми примечаниями, сорти­ровать объекты, отыскивать нужный объект по его описанию и т. д. Кроме того, в ка­честве объекта может использоваться потомок от TStrings, что позволяет создавать многомерные наборы строк.

Свойства класса:

property Capacity: Integer;

Текущая емкость набора строк

property CommaText: String;

Служит для установки или получения всего набора строк в виде единой строки с кавычками и запятыми (см. ниже пояснения)

property Count: Integer;

Текущее количество строк в наборе

property Names [Index: Integer] : String;

Для строки с индексом Index возвращает часть Name, если это строка вида Name=Value, в противном случае возвращает пустую строку

property Objects [Index: Inte­ger] : TObject;

Открывает доступ к объекту, связанному со строкой с индексом Index

property Strings [Index: Inte­ger] : String;

Открывает доступ к строке с индексом Index

property StringsAdapter: TStrings Adapter;

Это свойство используется только при разработке ком­понентов, отвечающих стандарту ActiveX

property Text: String;

Интерпретирует набор строк в виде одной длинной строки с разделителями EOLN между отдельными стро­ками набора

property Values [const Name: String] : String;

По части Name отыскивает в наборе и возвращает часть Value для строк вида Name=Value

TStringList

TStringList представляет собой полнофункциональный класс общего назначения и является прямым потомкам TStrings. Помимо перекрытых абстрактных методов своего родителя класс включает в себя такие дополнительные методы и свойства:

property Duplicates: IDupli-cates;

Свойство, позволяющее управлять возможностью размещения в наборе двух и более идентичных строк

property Sorted: Boolean;

Признак необходимости сортировки строк в алфа­витном порядке

property OnChange: TNoti-fyEvent;

Определяет реакцию на изменение набора строк. Возникает после последнего изменения

property OnChanging: TNoti-fyEvent;

Определяет реакцию на изменение набора строк. Возникает до очередного изменения

function Find (const S: String; var Index: Integer): Boolean;

Ищет в наборе строку S и в случае успеха в парамет­ре Index возвращает ее индекс

КОМПОНЕНТЫ СТРАНИЦЫ DIALOGS

В состав Windows входит ряд типовых диалоговых окон, таких как окно выбора за­гружаемого файла, окно выбора шрифта, окно для настройки принтера и т. д. В Delphi реализованы классы, объекты которых дают программисту удобные способы создания и использования таких окон.

Работа со стандартными диалоговыми окнами осуществляется в три этапа.

Вначале на форму помещается соответствующий компонент и осуществляется на­стройка его свойств (следует заметить, что собственно компонент-диалог не виден в момент работы программы, видно лишь создаваемое им стандартное окно). Настройка свойств может проходить как на этапе конструирования, так и в ходе прогона про­граммы. Как и для любых других компонентов, программист не должен заботиться о вызове конструктора и деструктора диалога - эти вызовы реализуются автоматически в момент старта и завершения программы.

На втором этапе осуществляется вызов стандартного для диалогов метода Exe­cute, который создает и показывает на экране диалоговое окно. Вызов этого метода обычно располагается внутри обработчика какого-либо события. Например, обработчик выбора опции меню Открыть файл может вызвать метод Execute диалога TOpenDialog, обработчик нажатия инструментальной кнопки Сохранить может вызвать такой же метод у компонента TSaveDialog и т. д. Только после обращения к Execute на экране появляется соответствующее диалоговое окно. Окно диалога является модальным окном, поэтому сразу после обращения к Execute дальнейшее выполнение программы приостанавлиаается до тех пор, пока пользователь не закроет окно. Поскольку Execute - логическая функция, она возвращает в программу True, если результат диалога с пользователем был успешным.

Проанализировав результат Execute, программа может выполнить третий этап - использование введенных с помощью диалогового окна данных - имени файла, настроек принтера, выбранного шрифта и т. д.

Соседние файлы в папке Делфа длАТПП-01