Cтраница 2
В свою очередь, специфичный компонент модуля можно превратить в многократно используемый, если щелкнуть мышью на имени компонента модуля в навигаторе ( или на символе в диаграмме) и выбрать Make Reusable ( сделать многократно используемым) в меню. [16]
Конечно же, было бы удобно использовать универсальную технологию, позволяющую сохранять свойства любого компонента Delphi ( говоря точнее, любого объекта, поддерживающего постоянное сохранение в памяти), рекурсивно обращаясь к каждому постоянному подобъекту и отображая имена компонентов, к которым происходит обращение. Именно это осуществляется в процедуре ComponentToDOM, которая использует низкоуровневую информацию RTTI, предоставляемую модулем Typlnfo. В составе данных, получаемых от Typlnfo, содержится перечень свойств компонента. [17]
Каждому компоненту Delphi присваивает имя, которое состоит из названия компонента и его порядкового номера. В простых программах имена компонентов, как правило, не изменяют. [18]
![]() |
Щелчок на кнопке Change в примере ChangeOwner перемещает компонент. [19] |
Установка соответствующего значения свойства Name очень важна: если оно слишком длинное, то это затруднит его использование ( много вводить); если оно слишком короткое, то можно перепутать различные объекты. Как правило, имя компонента имеет префикс, соответствующий типу компонента; это делает код более простым для восприятия и позволяет Delphi группировать компоненты в списке инспектора объектов ( Object Inspector), где они сортируются по имени. [20]
![]() |
Палитра инструментов Delphi 2005. [21] |
Другое удобство палитры компонентов - поле вода Search Tools, позволяющее найти установленные компоненты по их именам. При вводе фрагмента имени компонента в это поле в палитре компонентов отображаются компоненты из разных групп, имена которых полностью или частично совпадают с введенным именем. [22]
Никогда не изменяйте вручную имя компонента ( то имя, которое C 4 - Builder присваивает указателю на компонент) или имена обработчиков событий в окне редактора кода. Если вы выполните любое из этих действий, то C-H-Builder потеряет контроль над компонентом, и результат, мягко говоря, будет неудовлетворительным. Возможно, вам даже не удастся загрузить форму. [23]
После этого нужно ввести имя компонента модуля и свойства способа его использования в палитре свойств и сохранить эту информацию. [24]
Для того чтобы продемонстрировать фактическое изменение владельца компонента Buttonl, к обеим формам добавлена другая функция. Кнопка List заполняет список именами компонентов, которыми владеет каждая форма. Щелкните этими Двумя кнопками до и после перемещения компонента и вы увидите, что происходит. [25]
![]() |
Основные функции Win32 API для файлового ввода-вывода Функция UNIX Описание. [26] |
Применяемая в операционной системе Windows 2000 файловая система NTFS представляет собой иерархическую файловую систему, сходную с файловой системой UNIX. Однако в качестве разделителя между именами компонентов пути вместо символа / используется символ, атавизм, унаследованный от системы MS-DOS. В системе NTFS также существует понятие рабочего каталога, а пути могут быть относительными и абсолютными. Поддерживаются жесткие и символьные связи. Жесткие связи реализуются, как и в системе UNIX, при помощи нескольких записей в каталогах. Поддерживаются сжатие, шифрование и устойчивость к сбоям. Эти свойства и их реализация также будут рассмотрены ниже. [27]
![]() |
Форма после добавления двух компонентов Edit. [28] |
Каждому компоненту Delphi присваивает имя, которое состоит из названия компонента и его порядкового номера. Программист, путем изменения значения свойства Name, может изменить имя компонента. В простых программах имена компонентов, как правило, не изменяют. [29]
Компонент HtmlProd можно использовать не только для создания статических файлов HTML, но и как веб-сервер, используя подход, подобный рассмотренному в примере HttpServ, но более практичный. Программа обрабатывает запрос от одного из возможных генераторов страниц, сохраняя имя компонента в запросе. Это происходит в обработчике событий OnCommandGet компонента IdHTTPServer, который использует метод FindComponent для размещения соответствующего генератора компонента. [30]