Компоненты и VCL
Компоненты и VCL
1. Каковы ограничения на стандартные компоненты Delphi?
Все компоненты, использующие TList для сохранения информации, имеют верхний предел 16368 единиц. Hапример, TTabControl может содержать до 16368 закладок и Delphi Component Palette может содержать до 16368 страниц.
Многие из стандартных компонент Delphi являются надстройкой над стандартными управляющими элементами Windows. Windows 3.1 налагает свои собственные ограничения на эти компоненты. Hапример: TComboBox или TListbox могут содержать до 5440 единиц, а TMemo или TEdit (и соответствующие компоненты) — до 32k текста.
Ресурсы Windows 3.1 ограничивают компонент TNotebook 570 страницами. (Трудно получить более 500 хендлов /handles/ окон в любом приложении Windows). Превышение этих границ вызывает ошибку или послужит причиной странного поведения Windows.
2. Предел буфера редактирования в 32K для TMemo.
Почему в документации написано, что TMemo может редактировать тексты до 256К, а на деле получается не более 32К?
В документации ошибка. 32К — это ограничение Windows. В Windows все стандартные редакторы используют общий буфер в 32К, компонент TMemo использует другую технику, позволяющую каждому TMemo иметь буфер в 32К. В Windows 95 эта проблема решена.
3. Почему компонент TGauge так медленно работает (медленнее, чем VBX BGauge)?
Компонент TGauge — просто пример, и ничего более. В нем отсутствует даже намек на оптимизацию перерисовок. Если вы посмотрите на код процедуры SetProgress, то увидите
FCurValue := Value;
Refresh;
Это означает, что как только положение изменилось, весь компонент будет перерисован. Тем не менее, есть пути для того, чтобы сделать компонент более быстрым:
1. Не присваивать Progress каждый раз (напр. 3000 раз), т.е. делать обновление менее часто
2. Проверять, действительно ли позиция на экране изменится. Например, в SetProgress сделать следующее:
if Abs(FCurValue-FLastDrawn) >= FDisplayDelta then
begin
Refresh;
FastDrawn := FCurValue;
end;
где FDisplayDelta что-то вроде (FMaxValue-FMinValue) div Width (идеально было-бы учитывать реальный размер экрана.
3. Обновлять только часть индикатора, которая действительно меняется. Процедура Refresh стирает и перерисовывает весь компонент. Можно сделать вызов InvalidateRect (Windows API) и вызвать Update.
4. Если вы сделали как в пункте 3, вы дополнительно можете оптимизировать процедуру перерисовки, чтобы не перерисовывать неизменяющийся участок.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
10.1. Компоненты
10.1. Компоненты Для представления физических сущностей в языке UML применяется специальный термин – компонент (component). Компонент реализует некоторый набор интерфейсов и служит для общего обозначения элементов физического представления модели. Для графического
Компоненты ADODB
Компоненты ADODB В настоящее время этот набор компонентов стал промышленным стандартом взаимодействия с OLE DB-провайдерами. ADODB (www.microsoft.com/data) - это весьма удобный высокоуровневый интерфейс, реализующий классическую иерархию объектов для работы с базами данных в виде
Основные компоненты
Основные компоненты • Компилятор MinGW32 (скачать: сетевой автоустановщик) • Исходники библиотеки Qt (скачать: версию 4.3.4 или версию 4.3.2 )
Дополнительные компоненты
Дополнительные компоненты • Перевод документации Qt (скачать: Архив Qt документации ) • Перевод сообщений Qt и инструментальных средств (скачать: Перевод библиотеки Qt, инструментов Qt )
Остальные компоненты
Остальные компоненты К остальным компонентам компьютерной системы не предъявляется жестких требований, но все же есть несколько рекомендаций:• компьютер должен быть оборудован картой контроллера IEEE-1394 (FireWire). К разъему этой карты будет подключаться цифровая
Компоненты Web-сервиса XML
Компоненты Web-сервиса XML В дополнение к библиотеке управляемого программного кода, обеспечивающей предлагаемые сервисом функциональные возможности, для Web-сервиса XML требуется определенная инфраструктура поддержки. В частности, Web-сервис XML использует следующие базовые
2.3.2 Технология и компоненты EDA/SQL
2.3.2 Технология и компоненты EDA/SQL Технология EDA/SQL фирмы Information Builders, Inc. позволяет осуществлять доступ средствами SQL не только к реляционным, но и к нереляционным источникам данных, таким как иерархические базы данных и файлы с определенной структурой записей (record-oriented files),
Основные компоненты
Основные компоненты Этот раздел содержит некоторые основные шаблонные функции и классы, которые используются в остальной части
2.1. Компоненты Nero 8
2.1. Компоненты Nero 8 Перед тем как описывать установку Nero 8, перечислим и кратко опишем назначение всех программ этого пакета, чтобы вы могли лучше ориентироваться при изучении материала книги. В последующих главах вы найдете подробные инструкции по работе с этими
Программы и компоненты
Программы и компоненты Несанкционированное удаление либо неквалифицированная установка тех или иных программ могут привести к достаточно неприятным последствиям. Чтобы избежать подобных ситуаций, можно с помощью системного реестра закрыть доступ к выполнению
Компоненты
Компоненты Пример использует представление точки в двумерной графической системе: Рис. 7.1. Точка и ее координатыДля определения типа POINT как абстрактного типа данных потребуется четыре функции-запроса: x, y, ?, ?. (В текстах подпрограмм для двух последних функций будут
Универсальные компоненты
Универсальные компоненты Вот лишь некоторые компоненты, содержащиеся в классе GENERAL, а значит, доступные всем другим классам. Часть из них была введена и использована в предшествующих лекциях курса:[x]. clone для создания клона (дубля) объекта, а также его "глубинный" вариант
Замороженные компоненты
Замороженные компоненты При обсуждении идеи наследования неоднократно подчеркивался принцип Открыт-Закрыт - право, взяв компонент класса-родителя, переопределить его, возложив на него иные задачи. Могут ли появиться причины запрета такой
Серверные компоненты PKI
Серверные компоненты PKI Основными серверными компонентами PKI являются сервер сертификатов, сервер каталогов и сервер восстановления ключей, опциональными компонентами - сервер регистрации, OCSP-сервер, обслуживающий запросы пользователей по онлайновому протоколу