- •Delphi Справочник по компонентам. Класс tList
- •Класс tStream
- •Функции работы с файлами
- •Функции преобразования чисел с плавающей точкой
- •Функции работы с датами и временем
- •Элементы управления
- •Положение, размеры и выравнивание элементов управления
- •Активность и видимость элементов управления
- •Внутренний интерфейс Drag&Drop
- •Ярлычки и оперативная подсказка
- •Оконные элементы управления
- •Фокус ввода
- •Графическая подсистема
- •Класс tFont
- •Класс тРеn
- •Класс tBrush
- •Класс tCanvas
- •Класс tGraphic
- •Класс tPicture
- •Класс tMetafile
- •Класс tIcon
- •Класс tBitmap
- •Описание компонентов vcl
- •TPopupMenu.
- •Компонент tMainMenu
- •Компонент tPopupMenu
- •Компонент tBitBtn
- •Компонент tSpeedButton
- •Компонент tRadioGroup
- •Компонент tSpinButton
- •Ввод и редактирование текста
- •Компонент tEdit
- •Компонент тМеmo
- •Компонент tMaskEdit
- •Функции для форматирования текста
- •Оформление приложения
- •Компонент tPaintBox
- •Компонент tBevel
- •Компонент tImage
- •Компонент tHeader
- •Ввод и выбор значений
- •Компонент tListBox
- •Компонент tComboBox
- •Компонент tScrollBar
- •Компонент tSpinEdit
- •Компонент tDrawGrid
- •Многостраничные диалоговые окна
- •Компонент tNotebook
- •Компонент tTabSet
- •Компонент tTabbedNotebook
- •Группирование компонентов
- •Компонент tGroupBox
- •Компонент tPanel
- •Компонент tScrollBox
- •Компоненты — стандартные диалоговые окна Windows
- •Компоненты tOpenDialog и tSaveDialog
- •Компонент tColorDialog
- •Компонент tFontDialog
- •Компонент tPrintDlalog
- •Компонент tFindDialog
- •Компонент tReplaceDialog
- •Работа с файловой системой
- •Компонент tDriveComboBox
- •TDirectoryListBox
- •Компонент tFileListBox
- •Компонент tFilterComboBox
- •Компонент tDirectoryOutline
- •Работа со средствами мультимедиа
- •Динамический обмен данными (dde)
- •Компонент tdDeServerConv
- •Компонент tdDeServerltem
- •Компонент tddeciIentConv
- •Компонент tddecIientltem
- •Дополнительные компоненты
- •Компонент tGauge
- •Компонент tCalendar
- •Компонент tColorGrld
- •Использование интерфейса ole
- •Компонент toleContainer
- •Форма и ее свойства
- •Управление дочерними элементами
- •Приложение и среда его выполнения
- •Объект Application
- •Объект Clipboard
- •Компонент tScreen
- •Файлы инициализации
- •Печать данных из приложения
- •Компонент tSession
- •Компонент tDatabase
- •Компонент tDataSource
- •Компонент tTable
- •Компонент tQuery
- •Компонент tStoredProc
- •Компонент tReport
- •Компонент tBatchMove
- •Компонент tField
- •Объект tFieldDef
- •Важнейшие типы данных
- •Компоненты отображения данных и управления данными
- •Компонент tdbGrid
- •Компонент tdbNavigator
- •Компонент tdbText
- •Компонент tdbEdit
- •Компонент tdbMemo
- •Компонент tdbImage
- •Компонент tdbListBox
- •Компонент tdbComboBox
- •Компонент tdbCheckBox
- •Компонент tdbRadioGroup
- •Компонент tdbLookupUst
- •Компонент tdbLookupCombo
Файлы инициализации
TIniFile = class(TObject)
Этот класс — надстройка над файлом инициализации (его расширение .INI) и процедурами чтения и записи в него значений разных типов. Обратите внимание, что все читаемые и записываемые строки имеют тип string (а не pChar, как в стандартном API Windows).
Конструктор класса
constructor Create(const FileName: string);
создает объект, соответствующий файлу инициализации с именем FileName. В дальнейшем оно доступно через свойство:
(Ro) property FileName: string;
Файл инициализации состоит из строк вида "параметр=значение". Такие строки сведены в секции; имена секций заключаются в квадратные скобки.
Методы класса, посредством которых осуществляется работа с файлом, приведены в таблице:
function ReadStringfconst Section, Ident, Default: string): string; procedure WriteString(const |
Возвращает строку из секции Section, являющуюся значением параметра Ident. При отсутствии секции или параметра возвращается строка Default. |
Записывает (или перезаписывает) в секцию Section строку Ident=Value. | |
function Readlnteger(const Section, Ident: string; Default: Longint): Longint; |
|
Возвращает значение параметра Ident из секции Section, преобразованное в целое число. В случае любых ошибок возвращается значение Default. Преобразует Value в строку и записывает его в качестве значения Ident в секции Section. Работает как Readlnteger, но преобразует значение параметра в булеву переменную. | |
procedure Writelnteger(const Section, Ident: string; Value: Longint); function ReadBool(const Section, Ident: string; Default: Boolean): Boolean; | |
procedure WriteBool(const Section, Ident: string; Value: Boolean); procedure ReadSection(const Section: string; Strings: TStrings) ; procedure ReadSectionValues(const Section: string; Strings: TSCrings) ; |
Работает, как Writelnteger, но преобразует булево значение Value к виду '0'/"Г. |
Считывает в набор строк Strings секцию с именем Section. Максимальная длина секции — 8191 байт. | |
Считывает из секции Section в набор строк Strings только значения параметров. | |
procedure EraseSection(const Section: string); | |
Удаляет всю секцию с именем Section. |
Печать данных из приложения
Практически каждое приложение, работающее в Windows, имеет набор возможностей, позволяющих печатать те или иные данные. В состав Delphi включен специальный модуль — PRINTERS, в котором описан класс TPrinter, инкапсулирующий интерфейс печати Windows.
TPrinter = class(TObject)
Свойства и методы этого класса позволяют разработчику реализовать достаточно широкий набор возможностей для печати из приложения. Экземпляр объекта TPrinter с именем Printer создается автоматически при запуске приложения, если в его состав включен соответствующий модуль.
Обычно перед началом печати какого-либо документа из приложения необходимо проверить и при необходимости переустановить стандартные параметры. Этот процесс может быть как автоматическим (проверка и переопределение по умолчанию из программы), так и интерактивным (при помощи стандартных диалоговых окон PrintDialog и PrintSetupDialog).
Информацию обо всех инсталлированных в системе принтерах содержит список свойства:
(Ro) property Printers: TStrings;
Свойство доступно только при вьшолнении приложения. Информация о том, какой принтер из списка является текущим, содержится в свойстве:
property Printerlndex: Integer;
Оно возвращает порядковый номер принтера в списке. Значение -1 используется для идентификации принтера, установленного по умолчанию.
Метод
procedure GetPrinter(ADevice, ADriver, APort: PChar;
var ADeviceMode: THandle);
возвращает параметры текущего принтера, используя для его идентификации значение свойства Printerlndex.
Метод
procedure SetPrinter(ADevice, ADriver, APort: PChar;
ADeviceMode: THandle);
проверяет, инсталлирован ли в системе принтер с заданными параметрами. В случае успеха этот принтер становится текущим, в случае неудачи инсталлируется новый принтер. Использование этих двух методов не рекомендуется справочным руководством, так как по мнению разработчиков вполне достаточно свойств Printers и Printerlndex. Авторы также рекомендуют применять эти методы только подготовленньм разработчикам, если им необходимо работать с драйверами принтеров.
Свойство
(Ro) property Fonts: TStrings;
содержит список шрифтов, поддерживаемых текущим принтером. Свойство доступно только при вьшолнении приложения.
Расположение листа бумаги определяется свойством:
property Orientation: TPrinterOrientation;
TPrinterOrientation = (poPortrait, poLandscape) ;
Свойство доступно только при выполнении приложения. Высоту и ширину листа бумаги содержат свойства:
(Ro) property PageHeight: Integer;
(R^ property PageWidth: Integer;
Свойство
property Title: string;
содержит текстовую строку, которая используется для идентификации процесса печати (работы) в списке Диспетчера печати Windows.
Дескриптор принтера, с которым связан объект TPrinter, возвращается в свойстве:
(Ro) property Handle: HDC;
Поверхность печатаемой страницы доступна для вывода графических объектов (например, изображений) через свойство:
(Ro) property Canvas: TCanvas;
При использовании канвы необходимо проверить используемый принтер на предмет поддержки графики. Свойство доступно только при выполнении приложения.
Для управления процессом печати объект содержит набор методов и свойств:
- | |
procedure BeginDoc; |
Начинает печать документа. |
procedure EndDoc; |
Завершает печать документа. |
(Ro) property Printing: Boolean; procedure Abort; |
Определяет состояние процесса. Возвращает True во время печати. |
Используется для прерывания печати. | |
(Ro) property Aborted: Boolean; |
Устанавливается в True, если печать прервана. |
procedure NewPage; |
Отменяет печать текущей страницы и начинает распечатку следующей. При этом значение свойства PageNumber увеличивается на единицу. |
(Ro) property PageNumber: Integer; |
Содержит номер печатаемой страницы. Обращение к нему имеет смысл только в процессе печати документа. |
В модуле PRINTERS описан метод
procedure AssignPrn(var F: Text);
который связывает текстовую файловую переменную с текущим принтером, что позволяет направлять на принтер текстовые данные, используя традиционные процедуры Write и Writeln. При печати используется шрифт, определенный в канве объекта TPrinter. Следующий пример распечатывает
содержимое многострочного редактора PrintMemo при нажатии кнопки
printBtn:
procedure PrintForm.PrintBtnClick(Sender: TObject);
var
PrnTxt: System.Text;
i: Integer;
begin
AssignPrn(PrnTxt) ;
Rewrite(PrnTxt) ;
for i := 0 to PrintMemo. Lines .Count -1 do Writeln (PrnTxt, PrintMemo.Lines [ i ]);
CloseFile(PrnTxt) ;
end;
Для печати графики необходимо передать требуемый графический объект (изображение, график, фигуру) в канву объекта Printer. В следующем примере при нажатии кнопки PrintBfcn печатается изображение из компонента Printlmage:
procedure PrintForm.PrintBtnClick(Sender: TObject);
begin
with Printer do begin
BeginDoc;
Canvas.Draw(0, 0, Printlmage.Picture.Graphic);
EndDoc ;
end;
При необходимости пропорции распечатываемого графического объекта можно скорректировать при помощи свойства формы-контейнера PrintScale.