TObject
TObject является общим предком всех классов в Delphi, корнем
иерархии Visual Component Library. Tobject представляет собой абстрактный
класс, реализующий только наиболее общие механизмы, универсально разделяемые
всеми объектами VCL.
TObject автоматически используется как порождающий тип при создании
нового класса Delphi. Следовательно, следующие фрагменты кода имеют одно
и то же значение:
type
TNewObject = class
end;
type
TNewObject = class (TObject)
end;
Object объявляет конструктор и деструктор (специальные методы, которые
создают и разрушают объекты)и реализует информацию о типе и методах обработки
сообщений. Поскольку TObject является абстрактным классом, большинство
его методов перекрывается в его потомках в рамках VCL. Обычно у вас будет
доступ к порожденной реализации Create, конструктору и Free,
безопасно вызывающему деструктор Destroy.
Таблица 1 отображает методы общецелевого назначения, реализуемые TObject.
В общем случае из этих методов разработчикам приложений интересны только
три: Create, Destroy и Free.
Read the rest of this entry »
Вопрос:
Как поместить курсор в определенную позицию edit'а и подобных ему элементов управления?
Ответ:
Можно использовать методы Delphi SelStart() и SelectLength().
Пример:
Read the rest of this entry »
Вопрос:
Где в Delphi обьявленны VK_Key для A-Z и 0-9?
Ответ:
Они не обьявлены в Delphi поскольку они просто могуть быть заменены буквами.
VK_0 до VK_9 то же что и ASCII '0' до '9' ($30 - $39),
VK_A до VK_Z то же что и ASCII 'A' до 'Z' ($41 - $5A).
Вопрос:
Есть ли в Delphi эквивалент функции SendKeys Visual Basic'а?
Ответ:
Ниже приведена процедура,
позволяющаю отправлять нажатия в любой элемент управления (window control),
способный принимать ввод с клавиатуры. Вы можете использовать эту технику чтобы
включать клавиши NumLock, CapsLock и ScrollLock под Windows NT. Та же техника
работает и под Windows 95 для CapsLock и ScrollLock но не работает для клавиши
NumLock.
Обратите внимание, что приведены четыре поцедуры: SimulateKeyDown() – эмулировать
нажатие клавиши (без отпускания) SimulateKeyUp() – эмулировать отпускание клавиши
SimulateKeystroke() – эмулировать удар по клавише (нажатие и отпускание) и SendKeys(),
позволяющие Вам гибко контролировать посылаемые сообщения клавиатуры.
SimulateKeyDown(), SimulateKeyUp() и SimulateKeystroke() получают коды виртуальных
клавиш (virtural key) (вроде VK_F1). Процедура SimulateKeystroke() получает
дополнительный параметр, полезный при эмуляции нажатия PrintScreen. Когда этот
параметр равен нулю весь экран будет скопирован в буфер обмена (clipboard).
Если дополнительный параметр равен 1 будет скопированно только активное окно.
Четыре метода “button click” демонстрируют использование: ButtonClick1 – включает
capslock ButtonClick2 – перехватывает весь экран в буфер обмена (clipboard).
ButtonClick3 – перехватывает активное окно в буфер обмена (clipboard). ButtonClick4
- устанавливает фокус в Edit и отправляет в него строку. Read the rest of this entry »
Вопрос:
Как в Delphi реализовать функцию - эквивалент TwipsPerPixel из VisualBasic?
Ответ:
Функции TwipsPerPixelX и TwipsPerPixelY, приведенные в примере реализуют ту же
функциональность в Delphi. Read the rest of this entry »
Вопрос:
Почему методы рисования Delphi (например MoveTo и LineTo) рисуют на один пиксел короче?
Ответ:
Так работает большинство
графических систем, включая Windows. Библиотека VCL просто передает вызовы в
функции GDI. Если Вы хотите нарисовать линию с последним пикселом включительно
просто добавте единицу к координатам.
Как создать и вызвать модальную форму?
Модальные формы довольно часто выгоднее (с точки зрения использования памяти)
временно создавать, и после того, как форма была вызвана, отработан и закрыт,
- освободить его из памяти. В противном случае Delphi-приложение может быть
настоящим “пожирателем памяти”. Примерно так может выглядеть вызов такой
формы:
Read the rest of this entry »
Как вызвать подсказку к подсказке?
В Delphi-приложении можно вызвать помощь в пользовании системой помощи следующим
образом:
Application.HelpCommand(Help_HelpOnHelp, 0);
Урок 29: Генератор отчетов ReportSmith
- Краткий Обзор
Важной составной частью
приложения является вывод данных на печать – получение отчета. В пакет
Delphi входит средство для генерации и печати отчетов – ReportSmith. Вы
можете объединить отчет с приложениями Delphi. Также, библиотека визуальных
компонент Delphi включает специальный компонент TReport. В данном уроке
показано, как использовать компоненту TRepor и рассмотрены основные принципы
проектирования отчетов в ReportSmith.
- ReportSmith
Borland ReportSmith является
инструментом для получения отчетов и интегрирован в среду Delphi. Он может
быть вызван непосредственно из меню Tools. Отчет может быть добавлен к
приложениям Delphi, для этого есть компонента TReport на странице Data
Access Палитры Компонентов. Войти в ReportSmith можно, нажав правую кнопка
мыши на компоненте TReport и выбрав пункт контекстного меню (popup menu)
или двойным щелчком левой кнопки мыши на компоненте TReport на форме. Read the rest of this entry »
Урок 28: Редакторы свойств
- Обзор
Открытость Delphi
проявляется наиболее ярко в том, что наряду
с расширяемостью Библиотеки Визуальных Компонент можно изменять саму среду
программирования. Delphi предоставляет
соответствующее API с тем, чтобы программисты
могли расширять функциональность среды разработки. С помощью этого API
можно создать свои собственные Эксперты (Experts),
свою Систему Контроля Версий (Version
Control system), Редакторы Компонент (Component
Editors) и Редакторы Свойств (Property
Editors).
При написании новых объектов
часто требуется создавать для них свои Редакторы Свойств и Редакторы Компонент.
В данном уроке и рассказывается, как это сделать и приводятся примеры.
Краткое описание инструментов
среды Delphi и модулей, в которых реализованы
соответствующие API:
API Экспертов – Позволяет
создать свои собственные эксперты; модули EXPINTF.PAS
и VIRTINTF.PAS
API Контроля Версий
- Дает возможность создать свою систему Контроля Версий или подключить
систему третьей фирмы; модули VCSINTF.PAS
и VIRTINTF.PAS
API Редакторов Компонент
- Создание диалогов, связанных с объектом во время дизайна. Пример – Menu
Designer для TMenu или
Fields Editor для TTable; модуль DSGNINTF.PAS
API Редакторов Свойств
- Создание редакторов для использования их при редактировании свойств в
Инспекторе Объектов; модуль
DSGNINTF.PAS
Модули можно найти в библиотеке
визуальных компонент (в директории X:\DELPHI\SOURCE\VCL).
Необходимо отметить, что
большинству людей никогда не придется использовать вышеперечисленные API.
Однако, некоторым программистам они очень могут пригодиться, особенно разработчикам
новых объектов. Read the rest of this entry »