Программирование | Отладка | Web-технологии | Microsoft Office | Теор.информатика | Исслед-е операций | Операц. сис-мы | Новости |
Проектирование ИС | Исск. инт-т | Трансляторы | Об авторах | Карта сайта | Поиск |
Язык программирования Turbo Pascal |
Среда программирования Delphi 6 |
Язык программирования C++ |
Язык программирования C# |
Язык программирования Assembler |
Язык программирования Go |
Язык программирования Haskell |
Язык программирования Java |
Язык программирования Kotlin |
Язык программирования LISP |
Язык программирования Prolog |
Язык программирования Python |
Параллельные алгоритмы |
Сети Петри |
Начала |
Отладчик Turbo Debugger |
Основы HTML |
Технология Flash |
Язык программирования Perl |
Основы языка PHP |
Основы PhotoShop |
Основы JavaScript |
Основы CSS |
Основы CorelDRAW |
Библиотека jQuery |
Текстовый процессор Microsoft Word |
Электронные таблицы Microsoft Excel |
Система управления базами данных Microsoft Access |
Использование VBA в Microsoft Excel |
Место информатики в системе наук |
Общие сведения об информации |
Кодирование информации в теории Шеннона |
Основные понятия теории алгоритмов |
Классические формализации понятия 'алгоритм' |
Понятие рекурсии |
Сложность алгоритма |
Методы разработки алгоритмов |
Сложность задачи |
Информационное моделирование |
Основные понятия теории графов |
Алгоритмы поиска на графах |
Матроиды. 'Жадные' алгоритмы |
Динамическое программирование |
Алгоритмы |
UNIX и Linux |
Унифицированный язык моделирования UML |
Введение в машинное обучение с использованием Python |
Основы создания нейросети на Python |
Глубокое обучение на Python |
Начала |
Динамические структуры данных |
Библиотека RX |
Основные классы и события Delphi |
Основные компоненты Delphi |
Организация потоков |
Технология COM |
Язык программирования Object Pascal |
Локальные БД в Delphi |
Библиотека OWL |
Библиотека Qt |
Библиотека STL |
Библиотека шаблонов классов Borland |
Основы компьютерной графики |
Динамические структуры данных |
Начала |
Обработка исключительных ситуаций |
Оптимизация с помощью ассемблера |
Основы объектно-ориентированного программирования |
Потоки ввода-вывода |
Разное |
Редактор Resource Workshop |
Среда Visual C++ |
Программирование в Microsoft Visual C++ 2010 |
Технология CUDA |
Технология OLE |
Начала |
16-битное программирование |
32-битное программирование |
Основы логического программирования |
Динамические структуры данных |
Visual Prolog |
Библиотека PyQt5 |
Библиотека Tkinter |
Визуализация данных |
Начала |
Задачи ComputerScience |
Рекурсия |
Вкладка RXControls |
Вкладка RXDBAware |
Вкладка RXTools |
Вкладка Standard |
Вкладка Additional |
Создание Internet-приложений |
Вкладка System |
Вкладка Win32 |
Вкладка Servers |
Технология ADO |
Вкладка QReport |
Вкладка InterBase |
Вкладка Dialogs |
Начала |
Среда программирования. Язык С/С++ |
На этом шаге мы рассмотрим свойства и методы класса TComponent.
Свойства класса TComponent
Методы класса TComponent
Предком для всех компонентов библиотеки является класс TComponent. Он инкапсулирует наиболее общие свойства и методы компонентов, включая:
Объекты типа TComponent не создаются. Этот класс используется как базовый при объявлении класса невизуального компонента, который может присутствовать в палитре компонентов и применяться в процессе проектирования.
Этот класс имеет небольшое количество свойств, которые представлены в таблице 1.
Свойство | Описание |
---|---|
property ComObject: IUnknown; | Защищенное свойство, возвращающее ссылку на интерфейс в компонентах, поддерживающих стандарт COM. |
property ComponentCount: Integer; | Число компонентов, которыми владеет данный компонент. Равно числу элементов в массиве Components. Может использоваться вместе с ComponentIndex. |
property ComponentIndex: Integer; | Индекс компонента в массиве Components. Нумерация элементов в массиве начинается с 0. |
property Components [Index: Integer]: TComponent; | Массив компонентов, которыми владеет данный компонент. |
property ComponentState: TComponentState; type TCоmponentState = set of (csLoading, csReading, csWriting, csDestroying, csDesigning); |
Состояние компонента в процессе визуального проектирования (только для чтения). Эти состояния используются средой во время визуального проектирования, при загрузке/выгрузке компонентов из файлов ресурсов. Во время исполнения приложения множество состояний пусто. Во время выполнения не используется. |
property ComponentStyle: TComponentStyle; type TComponentStyle = set of (csInheritable, csCheckPropAvailcsSubComponent, csTransient); |
Определяет множество флагов стиля компонента. В частности, стиль csInheritable указывает, что компонент может принадлежать форме. |
property DesignInfo: Longint; | Используется в среде Delphi при проектировании форм. В нем хранятся координаты верхнего левого угла компонента во время разработки. В приложениях не используется. |
property property Name: TComponentName; type TComponentName = string[63]; |
Имя компонента. Имя компонента не может быть пустой строкой; в модуле не может быть и двух компонентов с одинаковыми именами. Это не просто то имя, которое использует программист при обращении к свойствам методам компонента, а компилятор - при компиляции этих обращений. Компонент знает свое имя на этапе выполнения программы, но что еще более важно - на этапе визуального проектирования приложения (будем называть это еще этапом разработки). |
property Owner: TComponent; | Определяет владельца данного компонента. Форма является владельцем всех расположенных на ней компонентов. В свою очередь объект Application является владельцем всех форм. Когда освобождается память, занимаемая владельцем, автоматически освобождается память всех компонентов, которыми он владел. Свойство только для чтения. |
property Tag: Longint; | Позволяет "привязать" к каждому компоненту целое число. Значение этого свойства системой не используется, поэтому разработчик может использовать его по своему усмотрению. |
property VCLComObject: Pointer; | Используется только в среде Delphi-компонентов, поддерживающих стандарт COM. |
В классе TComponent определено большое количество методов. В таблице 2 приводятся только те из них, которые часто используются при работе с компонентами. Остальные используются для внутренних потребностей Delphi.
Метод | Описание |
---|---|
constructor Create(AOwner: TComponent); virtual; | Вызов конструктора компонента. |
destructor Destroy; override; | Вызов деструктора компонента. Вместо этого метода лучше использовать методы Free или Release. |
function FindComponent(const AName: string): TComponent; | Ищет в списке Components компонент с заданным именем. |
procedure FreeNotification (AComponent: TComponent); | Гарантирует, что указанный в вызове компонент будет разрушен. Используется только по отношению к компонентам, расположенным на других формах. Для компонентов на текущей форме вызывается автоматически. |
procedure InsertComponent (AComponent: TComponent); | Добавление указанного компонента в конец списка компонента-владельца. При визуальном проектировании вызывается автоматически. Специально может потребоваться только при добавлении компонента в список другого владельца. |
procedure RemoveComponent (AComponent: TComponent); | Удаление указанного компонента из списка компонента-владельца. При визуальном проектировании вызывается автоматически. Специально может потребоваться только при удалении компонента из списка другого владельца. |
procedure DestroyComponents; | Удаляет все компоненты из списка. |
На следующем шаге мы рассмотрим состав класса TControl.