Глава 21. Объектные типы ObjectWindows (продолжение)
Тип TMessage модуль OWindows
-----------------------------------------------------------------
Описание:
TMessage = record
Reseiver: HWnd;
Message: Word;
case Integer of
0: (WParam: Word;
LParam: Longint;
Result: Longint);
1: (WParamLo: Byte;
WParamHi: Byte;
LParamLo: Word;
LParamHi: Word;
ResultLo: Word;
ResultHi: Word);
end;
Назначение: Цикл сообщения в TApplication упаковывает инфор-
мацию сообщения Windows в записи TMessage перед передачей инфор-
мации вместе с соответствующим методом реакции на сообщение.
См. также: TApplication.MessageLoop.
Тип TMultiSelRec модуль ODialogs
-----------------------------------------------------------------
Описание:
TMultiSelRec = record
Count: Integer;
Selections: array[00] of Integer;
end;
TMultiSelRec содержит список выделенных элементов для пере-
дачи в блок списка с множественным выбором или из него. Count
указывает число выделенных элементов, а Selection - это открытый
массив целых значений. Используя Al[locMultiSel, вы можете расп-
ределить запись с достаточным для используемого блока списка чис-
лом выделяемых элементов.
См. также: AllocMultiSel, FreeMultiSel.
------------------------------------------------------------------------
TObject модуль Objects
-----------------------------------------------------------------
TObject
+------+
+------|
| Init |
| Done |
| Free |
+------+
TObject - это отправная точка иерархии объектов
ObjectWindows. Как базовый объект, он не имеет предков, но имеет
много потомков. Все стандартные объекты ObjectWindows в конечном
счете являются производными от TObject. Любой объект, использую-
щий потоковые средства ObjectWindows, должен отслеживать наследо-
вание обратно к TObjects.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init;
Выделяет для объекта пространство в динамически распределяе-
мой области памяти. Вызывается конструкторами всех производных
объектов.
Free
-----------------------------------------------------------------
procedure Free;
Уничтожает объект и вызывает деструктор Done.
Done
-----------------------------------------------------------------
destructor Done; virtual;
Выполняет необходимую очистку и освобождение динамических
объектов.
Тип TPaintStruct модуль WinTypes
-----------------------------------------------------------------
Описание:
TPaintStruct = record
hdc: HDC;
fErase: Bool;
rcPaint: TRect;
fRestore: Bool;
fIncUpdate: Bool;
rgbReserved: array[015] of Byte;
end;
Назначение: Запись TPaintStruct содержит информацию, испо-
льзуемую приложением для отображения областей клиента окон. Боль-
шая часть информации резервируется для внутреннего использования
в Windows, но несколько полей могут использоваться пользователем.
Поле hdc - это описатель контекста дисплея, на котором про-
исходит отображение. fErase указывает, требуется ли повторно
отображать фон (отображение происходит в случае ненулевого значе-
ния). rcPaint определяет прямоугольник, в котором происходит
отображение.
Все другие поля резервируются для внутреннего использования
в Windows.
Тип TPicResult модуль Validate
-----------------------------------------------------------------
Описание:
TPicResult = (prComplete, prIncomplete, prEmpty, prError,
prSyntax, prAmbiguous, prIncompNoFill);
Назначение: TPicResult - это тип, возвращаемый методом
Picture объекта TPCPictureValidator.
См. также: TPCPictureValidator.
------------------------------------------------------------------------
TPrintDialog модуль OPrinter
-----------------------------------------------------------------
TObject TWindowsObject
+------+ +----------------------------------------+
+------| | ChildList Parent |
|-Init-| | Flags Status |
|-Done-| | HWindow TransferBuffer |
| Free | | Instance |
+------+ +----------------------------------------|
|-Init-------- GetChildren |
|-Load-------- -GetClassName-------|
| Done GetClient |
| AddChild -GetId--------------|
| At GetSiblingPtr |
| Canclose -GetWindowClass-----|
| ChildWithId IndexOf |
| CloseWindow IsFlagSet |
| CMExit Next |
|-Create------ Previous |
| CreateChildren PutChildPtr |
| CreateMemoryDC PutChildren |
| DefChildProc PutSiblingPtr |
| DefCommandProc -Register-----------|
| DefNotificationProc RemoveChild |
|-DefWndProc-- SetFlags |
| Destroy -SetupWindow--------|
| Disable Show |
| DisableAutoCreate -Store--------------|
| DisableTransfer Transfer |
| DispatchScroll TransferData |
| Enable -WMActivate---------|
| EnableAutoCreate WMClose |
| EnableKBHandler WMCommand |
| EnableTransfer WMDestroy |
| FirstThat -WMNScroll----------|
| Focus WMNCDestroy |
| ForEach WMNQueryEndSession |
| GetChildPtr -WMVScroll----------|
+----------------------------------------+
TDialog TPrintDialog
+-------------------+ +-----------------+
| Attr | | AllBtn |
| IsModal | | Colate |
+-------------------| | Controls |
|-Init--------------| | FromPage |
| Load | | PageBtn |
| Done | | Pages |
| Create | | PData |
| DefWndProc | | Printer |
| EndDlg | | PrinterName |
| Execute | | PrnDC |
| GetItemHandle | | SelAllowed |
| Ok | | SelectBtn |
| SendDlgItemMsg | | ToPage |
| Store | +-----------------|
| WMClose | | Init |
| WMInitDialog | | IDSetup |
| WMPostInvalid | | SetupWindow |
| WMQueryEndSession | | TransferData |
+-------------------+ +-----------------+
Диалоговый блок печати TPrintDialog дает пользователю воз-
можность настроить конкретное задание печати, выбирая такие пара-
метры, как число выводимых на печать страниц, число копий или ис-
пользуемый принтер. TPrintDialog - это используемый по умолчанию
диалоговый объект печати, но вы можете, переопределив метод
InitPrintDialog объекта принтера, включить свой собственный спе-
циализированный диалоговый блок.
Поля
-----------------------------------------------------------------
AllBtn
Al[lBtn: PRadioButton;
AllBtn - это один из трех наборов кнопок с зависимой фикса-
цией. При его выборе AllBtn указывает, что на принтере должны пе-
чататься все страницы документа.
См. также: TPrintDialog.SelectBtn, TPrintDialog.PageBtn.
Collate
Collate: PCheckBox;
Указывает на кнопку с независимой фиксацией в диалоговом
блоке, определяющую, хочет ли пользователь сравнения вывода.
Controls
Controls: PCollection;
Это поле предназначено для внутреннего использования в диа-
логовом блоке печати.
Copies
Copies: PEdit;
Copies позволяет пользователю задать число печатаемых копий
документа.
FromPage
FromPage: PEdit;
Если пользователь выбирает печать диапазона страниц,
FromPage содержит номер первой печатаемой страницы.
PageBtn
PageBtn: PRadioButton;
PageBtn - это один из трех наборов кнопок с зависимой фикса-
цией. При его выборе пользователь хочет печатать выделенный диа-
пазон страниц.
См. также: TPrintDialog.AllBtn, TPrintDialog.FromPage,
TPrintDialog.SelectBtn, TPrintDialog.ToPage.
Pages
Pages: Integer;
Pages - это общее число страниц в документе.
PData
PData: PPrintDialogRec;
PData указывает на тип TPrintDialogRec. Диалоговые блоки
печати используют эту запись как буфер передачи.
См. также: тип TPrintDialogRec.
Printer
Printer: PPrinter;
Printer указывает на объект принтера, связанный с диалоговым
блоком печати.
PrinterName
PrinterName: PStatic;
Указывает на статический текстовый управляющий элемент, со-
держащий имя текущего выбранного принтера.
PrnDC
PrnDC: HDC;
PrnDC - это описатель используемого для печати контекста
устройства.
SetAllowed
SetAllowed: Boolean;
В случае значения True указывает, что устройство печати под-
держивает печать только выделенного текста документа. SelectBtn
разрешается только когда SelAllowed имеет значение True.
См. также: TPrintDialog.SelectBtn.
SelectBtn
SelectBtn: PRadioButton;
SelectBtn - это один из трех наборов кнопок с зависимой фик-
сацией. При его выборе пользователь хочет печатать текущий выде-
ленный в документе текст.
См. также: TPrintDialog.SelAllowed.
ToPage
ToPage: PEdit;
Если пользователь выбирает печать диапазона страниц, ToPage
содержит номер последней выводимой на печать страницы.
См. также: TPrintDialog.PageBtn, TPrintDialog.FromPage.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init(AParent: PWindowsObject; Template: PChar;
APrnDC: HDC; APages: Integer; APrinter: PPrinter;
ASelAllowed: Boolean; var Data: TPrintDialogRec);
Строит диалоговый блок печати, вызывая сначала конструктор
Init, наследуемый из TDialog, а затем выбирая поля в соответствии
со значениями переданных параметров. Затем Init строит управляю-
щие объекты диалогового блока, вызывая для каждого из них
InitResource.
IDSetup
procedure IDSetup(var Msg: TMessage); virtual
id_First + id_Setup;
Отвечает на нажатие пользователем кнопки Setup, вызывая диа-
логовый блок установки принтера. По умолчанию диалоговый блок ус-
тановки принтера является экземпляром типа TPrinterSetupDialog.
См. также: объект TPrinterSetupDialog.
SetupWindow
procedure SetupWindow; virtual;
Инициализирует диалоговый блок, вызывая сначала наследуемый
из TDialog метод SetupWindow, а затем считывая имя устройства пе-
чати из объекта принтера и устанавливая в это значение поле
PrinterName.
TransferData
procedure TransferData(Direction: Word); virtual;
Переопределяет наследуемый метод TransferData для установки
управляющих значение на основе значения в PData, если Direction
равно tf_SetData или устанавливает на основе управляющих значений
PData, если Direction равно tf_GetData. TransferData не просто
устанавливает или считывает управляющие элементы, как при взаимо-
обмене между полями PData и управляющими элементами диалогового
блока печати.
Тип TPrintDialogRec модуль OPrinter
-----------------------------------------------------------------
Описание:
TPrintDialogRec = record
drStart: Integer;
drStop: Integer;
drCopies: Integer;
drCollate: Boolean;
drUseSelection: Boolean;
end;
Назначение: Диалоговые объекты печати используют тип
TPrintDialogRec как буферы передачи. Поля drStart и drStop предс-
тавляют, соответственно, первую и последнюю страницы для печати.
drCopies указывает число печатаемых копий. drCollate сообщает
принтеру о сравнении копий, если drCopies вызывается несколько
раз. drUseSelection сообщает принтеру о печати выделенного текс-
та, а не текста, указанного drStart и drStop.
------------------------------------------------------------------------
TPrinter модуль OPrinter
-----------------------------------------------------------------
TObject TPrintout
+------+ +------------------+
+------| | Device |
|-Init-| | DeviceMode |
|-Done-| | DeviceModule |
| Free | | DevSettings |
+------+ | DevSettingSize |
| Driver |
| Error |
| ExtDeviceMode |
| Port |
| Status |
+------------------|
| Init |
| Done |
| ClearDevice |
| Configure |
| GetDC |
| InitAbortDialog |
| InitPrintDialog |
| Print |
| ReportError |
| SertDevice |
| Setup |
+------------------+
Объект TPrinter представляет инкапсуляцию системы драйвера
принтера Windows. Чтобы напечатать на принтере или настроить его
конфигурацию, инициализируйте экземпляр TPrinter.
Поля
-----------------------------------------------------------------
Device
Device: PChar;
Указывает на имя текущего устройства. В случае значения nil
объект не связан в данный момент с устройством.
DeviceMode
DeviceMode: TDeviceMode;
Функциональная переменная, содержащая адрес функции
DeviceMode текущего связанного принтера. Данная переменная ис-
пользуется при вызове Configure, если устройство не поддерживает
ExtDeviceMode.
DeviceModule
DeviceModule: THandle;
Описатель текущего драйвера принтера.
DeviceSettings
DeviceSettings: PDevMode;
Указатель на локальную копию установленных параметров уст-
ройства печати (называемую также операционным окружением). Ис-
пользуется только если текущее устройство печати поддерживает
ExtDeviceMode.
DeviceSettingSize
DeviceSettingSize: Integer;
Объем памяти, выделенной для DeviceSetings.
Driver
Driver: PChar;
Указатель на имя текущего драйвера. В случае значения nil
объект не связан в данный момент с драйвером.
Error
Error: Integer;
Код ошибки, возвращаемый GDI при печати. Это значение иници-
ализируется при вызове Print.
ExtDeviceMode
ExtDeviceMode: TExtDeviceMode;
Функциональная переменная, содержащая адрес функции
ExtDeviceMode текущего устройства печати. Если драйвер не поддер-
живает данную подпрограмму, специфичную для Windows 3.0, то дан-
ный адрес равен nil (то есть @ExtDeviceMode = nil равно True).
Эта переменная используется при вызове Configure.
Port
Port: PChar;
Указатель на имя порта, к которому подсоединен текущий прин-
тер. В случае значения nil объект не содержит принтера.
Status
Status: Integer;
Текущее состояние драйвера принтера.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init;
Создает экземпляр TPrinter, связанный с используемым по
умолчанию принтером. Чтобы сменить принтер, TPrinter после иници-
ализации объекта вызывает SetDevice. Вызов Setup также позволяет
пользователю выбрать новое устройство в ходе диалога.
Done (переопределяется редко)
-----------------------------------------------------------------
desctuctor Done; virtual;
Освобождает ресурсы, выделенные для TPrinter.
ClearDevice
-----------------------------------------------------------------
procedure ClearDevice;
Отменяет связь устройства с текущим принтером. Вызывается
SetDevice и Done. Изменяет текущее состояние принтера на
pf_Unassociated, что приводит к игнорированию объектом всех вызо-
вов Print, пока объект не будет снова связан с принтером.
Configure
-----------------------------------------------------------------
procedure Confuigure(Window: PWindowsObject);
Вызывает драйвер устройства для конфигурации текущего прин-
тера. Если драйвер принтера поддерживает ExtDeviceMode, то сохра-
няется локальная копия параметров принтера, и значения принтера
по умолчанию не изменяются. Если принтер поддерживает только
DeviceMode, глобальные значения по умолчанию для принтера будут
модифицированы.
GetDC (переопределяется редко)
-----------------------------------------------------------------
function GetDC: HDC; virtual;
Возвращает для текущего связанного с объектом принтера кон-
текст устройства. Если объект находится в недопустимом состоянии,
или принтер связан с неактивным портом (то есть с портом "None"),
возвращает 0.
InitAbortDialog (переопределяется редко)
-----------------------------------------------------------------
function InitAbortDialog(Parent: PWindowsObject;
Title: PChar): PDialog; virtual;
Вызывается методом Print в начале печати задания. Возвращае-
мым результатом является созданный безрежимный диалоговый блок.
По умолчанию возвращается экземпляр TPrinterAbortDlg. Отмена это-
го диалогового блока отменяет задание печати.
Может переопределяться для возврата специализированного диа-
лога, выводящего на экран текущую печать.
InitPrintDialog (переопределяется редко)
-----------------------------------------------------------------
function InitPrintDialog(Parent: PWindowsObject; PrnDC: HDC;
Pages: Integer; SetAllowed: Boolean; var Data;
TPrintDialogRec): PDialog; virtual;
Вызывается методом Print для возврата диалогового блока, ес-
ли объект распечатки указывает, что поддерживается печать выбран-
ных страниц. Диалоговый блок печати позволяет пользователю задать
печать всех страниц, выделенного текста или диапазона страниц.
По умолчанию InitPrintDialog возвращает экземпляр типа
TPrintDialog.
InitSetupDialog (переопределяется редко)
-----------------------------------------------------------------
function InitSetupDialog(Parent: PWindowsObject): PDialog;
virtual;
Вызывается методом Setup для возврата диалогового блока ус-
тановки принтера. В приложении результат предполагается в виде
режимного диалогового окна. По умолчанию возвращается экземпляр
TPrinterSetupDlg. Может переопределяться для возврата специали-
зированного диалога установки принтера.
Print
-----------------------------------------------------------------
function Print(ParentWin: PWindowsObject;
PrintOut: PPrintOut): Boolean;
Переводит указанный объект распечатки на связанное устройс-
тво печати. При печати выводит на экран диалоговое окно прерыва-
ния и обнаруженные ошибки.
ReportError (иногда переопределяется)
-----------------------------------------------------------------
procedure ReportError(PrintOut: PPrintOut); virtual;
Print вызывает ReportError в случае обнаружения ошибки. По
умолчанию выводится блок системного сообщения со строкой ошибки,
полученной из значений таблицы строк 32512 - 32519. Чтобы вывести
специализированный диалоговый блок ошибки, данный метод можно пе-
реопределить.
SetDevice
-----------------------------------------------------------------
procedure SetDevice(ADevice, ADriver, APort: PChar);
Изменяет связь с устройством печати. Setup вызывает
SetDevice для интерактивного изменения связи. Допустимые парамет-
ры данного метода можно найти в секции устройств файла WIN.INI.
Записи секции устройств имеют следующий формат:
<имя_устройства>=<драйвер>, <порт> {, <порт>}
где порт может повторяться любое число раз.
Setup
-----------------------------------------------------------------
procedure Setup(Parent: PWindowsObject);
Этот метод вызывается, когда вы хотите, чтобы пользователь
выбирал и/или настраивал конфигурацию текущего связанного принте-
ра. Для возврата представляемого пользователю диалогового блока
установки принтера вызывает InitSetupDialog.
------------------------------------------------------------------------
TPrinterAbortDlg модуль OPrinter
-----------------------------------------------------------------
TObject TWindowsObject
+------+ +----------------------------------------+
+------| | ChildList Parent |
|-Init-| | Flags Status |
|-Done-| | HWindow TransferBuffer |
| Free | | Instance |
+------+ +----------------------------------------|
|-Init-------- GetChildren |
|-Load-------- -GetClassName-------|
| Done GetClient |
| AddChild -GetId--------------|
| At GetSiblingPtr |
| Canclose -GetWindowClass-----|
| ChildWithId IndexOf |
| CloseWindow IsFlagSet |
| CMExit Next |
|-Create------ Previous |
| CreateChildren PutChildPtr |
| CreateMemoryDC PutChildren |
| DefChildProc PutSiblingPtr |
| DefCommandProc -Register-----------|
| DefNotificationProc RemoveChild |
|-DefWndProc-- SetFlags |
| Destroy -SetupWindow--------|
| Disable Show |
| DisableAutoCreate -Store--------------|
| DisableTransfer Transfer |
| DispatchScroll TransferData |
| Enable -WMActivate---------|
| EnableAutoCreate WMClose |
| EnableKBHandler WMCommand |
| EnableTransfer WMDestroy |
| FirstThat -WMNScroll----------|
| Focus WMNCDestroy |
| ForEach WMNQueryEndSession |
| GetChildPtr -WMVScroll----------|
+----------------------------------------+
TDialog TPrinterAbortDlg
+-------------------+ +-----------------+
| Attr | +-----------------|
| IsModal | | Init |
+-------------------| | SetupWindow |
|-Init--------------| | WMCommand |
| Load | +-----------------+
| Done |
| Create |
| DefWndProc |
| EndDlg |
| Execute |
| GetItemHandle |
| Ok |
| SendDlgItemMsg |
| Store |
| WMClose |
| WMInitDialog |
| WMPostInvalid |
| WMQueryEndSession |
+-------------------+
Это объектный тип используемого по умолчанию диалогового ок-
на прерывания принтера. Данный диалог инициализируется для вывода
заголовка текущей распечатки, а также устройства и порта, которые
используются в данный момент для печати.
Предполагается, что TPrinterAbortDlg имеет три статических
текстовых управляющих элемента с идентификаторами управляющих
элементов: 101 - для заголовка, 102 - для устройства и 103 для
порта соответственно. В своих текстовых строках эти управляющие
элементы должны содержать символ '%', который заменяется, соот-
ветственно, заголовком, устройством и портом. Позиция и порядок
табуляции управляющих элементов в диалоговом блоке важного значе-
ния не имеет.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init(AParent: PWindowsObject; Template, Title,
Device, Port: PChar);
Строит диалоговый блок прерывания печати, в котором наряду с
кнопкой Cancel выводятся заданный заголовок (Title), устройство
(Device) и порт (Port).
SetupWindow (переопределяется редко)
-----------------------------------------------------------------
procedure SetupWindow; virtual;
Предназначена для внутреннего использования в связанных объ-
ектах с шаблоном диалогового ресурса, так что могут заполняться
заголовок, устройство и порт.
WMCommand (переопределяется редко)
-----------------------------------------------------------------
procedure WMCommand(var Msg: TMessage); virtual
wm_First + wm_Command;
Предназначена для внутренней работы с кнопкой Cancel (Отме-
на).
------------------------------------------------------------------------
TPrinterSetupDlg модуль OPrinter
-----------------------------------------------------------------
TObject TWindowsObject
+------+ +----------------------------------------+
+------| | ChildList Parent |
|-Init-| | Flags Status |
|-Done-| | HWindow TransferBuffer |
| Free | | Instance |
+------+ +----------------------------------------|
|-Init-------- GetChildren |
|-Load-------- -GetClassName-------|
| Done GetClient |
| AddChild -GetId--------------|
| At GetSiblingPtr |
| Canclose -GetWindowClass-----|
| ChildWithId IndexOf |
| CloseWindow IsFlagSet |
| CMExit Next |
|-Create------ Previous |
| CreateChildren PutChildPtr |
| CreateMemoryDC PutChildren |
| DefChildProc PutSiblingPtr |
| DefCommandProc -Register-----------|
| DefNotificationProc RemoveChild |
|-DefWndProc-- SetFlags |
| Destroy -SetupWindow--------|
| Disable Show |
| DisableAutoCreate -Store--------------|
| DisableTransfer Transfer |
| DispatchScroll TransferData |
| Enable -WMActivate---------|
| EnableAutoCreate WMClose |
| EnableKBHandler WMCommand |
| EnableTransfer WMDestroy |
| FirstThat -WMNScroll----------|
| Focus WMNCDestroy |
| ForEach WMNQueryEndSession |
| GetChildPtr -WMVScroll----------|
+----------------------------------------+
TDialog TPrinterSetupDlg
+-------------------+ +-----------------+
| Attr | | Printer |
| IsModal | +-----------------|
+-------------------| | Init |
|-Init--------------| | Done |
| Load | | Cancel |
| Done | | IDSetup |
| Create | | TransferData |
| DefWndProc | +-----------------+
| EndDlg |
| Execute |
| GetItemHandle |
| Ok |
| SendDlgItemMsg |
| Store |
| WMClose |
| WMInitDialog |
| WMPostInvalid |
| WMQueryEndSession |
+-------------------+
Это используемый по умолчанию диалоговый блок установки
принтера. Он аналогичен диалоговому блоку установки принтера в
IDE для Windows. Предполагается, что TPrinterSetupDlg имеет ком-
бинированный блок для списка допустимых устройств и командную
кнопку Setup. Они имеют идентификаторы 101 и 102 соответственно.
В него следует также включить кнопки OK и Cancel.
Поля
-----------------------------------------------------------------
Printer
Printer: PPrinter;
Указывает на текущий принтер, модифицируемый в диалоге.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init(AParent: PWindowsObject;
TemplateName: PChar; APrinter: PPrinter);
Строит диалоговый блок установки принтера, модифицирующий
указанный принтер.
Done (переопределяется редко)
-----------------------------------------------------------------
destructor Done; virtual;
Освобождает связанные с объектом ресурсы.
Cancel (никогда не переопределяется)
-----------------------------------------------------------------
procedure Cancel(var Msg: TMessage); virtual
id_First + id_Cancel;
Предназначается для внутреннего использования с целью восс-
тановления предыдущего состояния принтера, если пользователь пос-
ле Setup нажал командную кнопку Cancel.
IDSetup (никогда не переопределяется)
-----------------------------------------------------------------
procedure IDSetup(var Msg: TMessage); virtual
id_First + id_Setup;
Обрабатывает нажатия кнопки Setup. Модифицирует заданный
принтер и вызывает его метод Configure.
TransferData (никогда не переопределяется)
-----------------------------------------------------------------
procedure TransferData(TransferFlag: Word); virtual;
Предназначается для внутреннего использования с целью пере-
сылки данных из диалогового блока и непосредственной модификации
заданного принтера.
------------------------------------------------------------------------
TPrintout модуль OPrinter
-----------------------------------------------------------------
TObject TPrintout
+------+ +-----------------+
+------| | Banding |
|-Init-| | DC |
|-Done-| | ForceAllBands |
| Free | | Size |
+------+ | Title |
+-----------------|
| Init |
| Done |
| BeginDocument |
| BeginPrinting |
| EndDocument |
| EndPrinting |
| GetDialogInfo |
| GetSelection |
| HasNextPage |
| PrintPage |
| SetPrintParams |
+-----------------+
Этот объект используется в сочетании с объектом TPrinter для
печати информации на принтере. Данный объектный тип является абс-
трактным. Это означает, что сам по себе он не может использовать-
ся для печати каких-либо данных. Должны создаваться наследники
TPrinter, а метод PrintPage должен переопределяться для печати
нужных данных.
Поля
-----------------------------------------------------------------
Banding
Banding: Boolean;
В случае значения True распечатка выводится с использование
разбиения на полосы, и для каждой полосы вызывается метод
PrintPage. В противном случае метод PrintPage вызывается однократ-
но для каждой страницы. Разбиение распечатки на полосы более эф-
фективно по времени и затратам памяти, чем его отсутствие. По
умолчанию это поле имеет значение False.
DC
DC: HDC;
DC - это описатель используемого для печати контекста уст-
ройства.
ForceAllBands
ForceAllBands: Boolean;
Многие драйверы устройств не предусматривают многополосной
печати на принтере, если и текст, и графика не выполняются с ис-
пользованием первой полосы (обычно это только текстовая полоса).
Если оставить в этом поле значение True, это вынудит драйвер
принтера использовать все полосы, независимо от того, какие вызо-
вы выполняются в методе PrintPage. Если PrintPage ничего не дела-
ет кроме вывода текста, то эффективнее установить это поле в
False. По умолчанию оно равно True. Данное поле действует только
в том случае, если Banding равно True.
Size
Size: TPoint;
Size представляет размер области печати на странице распечат-
ки.
Title
Title: PChar;
Текущий заголовок, используемый для распечатки. По умолчанию
этот заголовок выводится в диалоговом блоке прерывания печати и в
качестве имени задания печати в администраторе печати.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init(ATitle: PChar);
Строит экземпляр TPrintOut с заданным заголовком.
Done
-----------------------------------------------------------------
destructor Done; virtual;
Уничтожает ресурс, выделенный конструктором Init.
BeginDocument
procedure BeginDocument(StartPage, EndPage: Integer;
Flag: Word); virtual;
Метод Print объекта печати вызывает BeginDocument один раз
перед печатью каждой копии документа. Поле Flag содержит
pf_Banding или pf_Selection и указывает, будет ли использоваться
разбиение на полосы или печать выделенного текста.
Используемый по умолчанию метод BeginDocument ничего не дела-
ет. Наследующие объекты могут переопределять его для выполнения
в начале каждой копии документа необходимой инициализации.
BeginPrinting
-----------------------------------------------------------------
procedure BeginPrinting; virtual;
Независимо от того, сколько копий документа будет печататься,
метод Print объекта печати вызывает BeginPrinting один раз в нача-
ле печати задания.
Используемый по умолчанию метод BeginPrinting ничего не дела-
ет. Наследующие объекты могут переопределять его для выполнения
необходимой перед печатью инициализации.
EndDocument
-----------------------------------------------------------------
procedure EndDocument; virtual;
Метод Print объекта печати вызывает EndDocument после завер-
шения печати каждой копии документа.
Используемый по умолчанию метод EndDocument ничего не делает.
Наследующие объекты могут переопределять его для выполнения необ-
ходимых действий в конце печати каждого документа.
EndPrinting
-----------------------------------------------------------------
procedure EndPrinting; virtual;
Метод Print объекта печати вызывает BeginPrinting в конце пе-
чати всех копий документа.
Используемый по умолчанию метод EndPrinting ничего не делает.
Наследующие объекты могут переопределять его для выполнения необ-
ходимых в конце печати действий.
GetDialogInfo
-----------------------------------------------------------------
procedure GetDialogInfo(var Pages: Integer): Boolean;
virtual;
Считывает информацию, необходимую для печати выделенных стра-
ниц документа, и возвращает True, если выбор страниц возможен. Ис-
пользовать Pages не обязательно, но если легко определить число
страниц, GetDialogInfo нужно передать в параметре Pages число
страниц в документе. В противном случае HasNextPage следует уста-
новить в 0, а печать будет продолжаться, пока HasNextPage не возв-
ратит False.
GetSelection
-----------------------------------------------------------------
function GetSelection(var Start, Stop: Integer): Boolean;
virtual;
Определяет, имеет ли документ выделенный текст. Если да, то
функция возвращает значение True, а Start и Stop указывают, соот-
ветственно, на начало и конец выделенного текста. Если
GetSelection возвращает False, то командная кнопка печати выделен-
ного текста в диалоговом блоке печати запрещена.
По умолчанию GetSelection просто возвращает False. Наследую-
щие объекты могут переопределять GetSelection для фактического оп-
ределения существования выделенного текста.
HasNextPage
-----------------------------------------------------------------
function HasNextPage: Boolean; virtual;
Данный метод вызывается после каждой страницы. По умолчанию
он всегда возвращает значение False, указывая, что печататься
должна только одна страница. Если документ содержит более одной
страницы, данный метод нужно переопределить для возврата True, ес-
ли имеются еще страницы для печати.
PrintPage
-----------------------------------------------------------------
procedure PrintPage(Page: Word; var Rect: TRect;
Flags: Word); virtual;
Вызывается для каждой страницы (или полосы, если Banding име-
ет значение True). Должен переопределяться для печати содержимого
данной страницы. Параметры Rect и Flags используются при разбиении
на полосы для указания размера и типа полосы, запрошенной через
драйвер (если Banding равно False, это следует игнорировать). Па-
раметр Size - это размер печатаемой страницы (в элементарных еди-
ницах устройства). Page - это номер текущей страницы, а DC - кон-
текст устройства печати, который переопределенный метод должен ис-
пользовать во всех вызова GDI.
SetPrintParams
------------------------------------------------------------------
procedure SetPrintParams(ADC: HDC; ASize: TPoint): virtual;
Устанавливает поля DC и Size в ADC и ASize соответственно.
Это первый метод распечатки, вызываемый методом Print объекта
принтера и обеспечивающий объект распечатки информацией, необходи-
мой для разбиения на страницы и ведения счетчика страниц. Если
наследующие объекты переопределяют SetPrintParams, они должны вы-
зывать наследуемый метод.
------------------------------------------------------------------------
TPXPictureValidator модуль Validate
-----------------------------------------------------------------
TObject TValidator TPXPictureValidator
+------+ +-----------------+ +-----------------+
+------| | Options | | Pic |
|-Init-| | Status | +-----------------|
|-Done-| +-----------------| | Init |
| Free | |-Init------------| | Load |
+------+ |-Load------------| | Done |
|-IsInvalid-------| | Error |
|-IsValidInput----| | IsValid |
|-Store-----------| | IsValidInput |
| Transfer | | Picture |
| Valid | | Store |
+-----------------+ +-----------------+
Трафаретные объекты проверки допустимости сравнивают ввод
пользователя с трафаретом (шаблоном) формата данных и определяют
допустимость введенных данных. Трафареты совместимы с шаблонами
реляционной базы данных Paradox фирмы Borland, используемыми для
управления вводом данных. Полное описание спецификаторов трафаре-
та см. в методе Picture объекта TPXPictureValidator.
Поля
-----------------------------------------------------------------
Pic
Pic: PString:
Указатель на строку, содержащую трафарет, определяющий формат
данных в соответствующей строке ввода. Конструктор Init устанавли-
вает Pic в строку, переданную в качестве одного из параметров.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init(const APic: String; AutoFill: Boolean);
Строит объект проверки допустимости по трафарету, вызывая
сначала конструктор Init, наследуемый из TValidator, а затем выде-
ляя копию APic в динамически распределяемой памяти и устанавливая
на нее Pic. Затем, если AutoFill имеет значение True, устанавлива-
ет бит voFill в Options.
См. также: TValidator.Init.
Load
-----------------------------------------------------------------
constructor Load(var S: TStream);
Строит и загружает объект проверки допустимости по трафарету
из потока S, вызывая сначала конструктор Load, наследуемый из
TValidator, а затем считывая значение поля Pic, введенное в
TPXPictureValidator.
См. также: TValidator.Load.
Done
-----------------------------------------------------------------
destructor Done; virtual;
Уничтожает строку, на которую указывает Pic, затем уничтожает
объект проверки допустимости по трафарету, вызывая деструктор
Done, наследуемый из TValidator.
Error
-----------------------------------------------------------------
procedure Error; virtual;
Выполняет блок сообщения, указывая на ошибку в формате трафа-
рета, и выводит строку, на которую указывает Pic.
ISValidInput
-----------------------------------------------------------------
function ISValidInput(var S: string; SupressFill: Boolean):
Boolean; virtual;
Проверяет передаваемую в S строку, сравнивая ее с трафарет-
ным форматом, заданным в Pic, и возвращает значение True, если
Pic равно nil, или Picture не возвращает для S prError. В против-
ном случае возвращается False. Параметр SupressFill переопределя-
ет значение в voFill на время выполнения вызова IsValidInput.
Так как S - это параметр-переменная, IsValidInput может мо-
дифицировать ее значение. Например, если SupressFill равно False,
и установлено voFill, то вызов Picture возвращает на основе S за-
полненную строку, так что образ строки ввода автоматически отра-
жает заданный в Pic формат.
См. также: TPXPictureValidator.Picture.
IsInvalid
-----------------------------------------------------------------
function IsValid(const S: string): Boolean; virtual;
Сравнивает переданную в S строку с шаблоном формата, задан-
ным в Pic, и возвращает True, если Pic равно nil, или если
Picture возвращает для S prComplete, указывая, что S для соот-
ветствия данному формату не требует дальнейшего ввода.
См. также: TPCPictureValidator.Picture.
Picture
-----------------------------------------------------------------
function Picture(var Input: String): TPicResult; virtual;
Форматирует переданную в Input строку в соответствии с фор-
матом, заданным строкой трафарета, на которую указывает Pic. Если
в строке трафарета имеется ошибка, или Input содержит данные, не
помещающиеся в заданном трафарете, возвращает prError. Если Input
может полностью удовлетворять заданному трафарету, возвращает
prComplete. Если Input содержит данные, не полностью соответству-
ющие заданному трафарету, возвращает prIncomplete.
Символы, используемые для создания трафаретов формата, пока-
заны в следующей таблице:
Символы трафарета формата Таблица 21.26
+------------------+---------+----------------------------------+
| Тип символа | Символ | Описание |
+------------------+---------+----------------------------------|
| Специальный | # | Воспринимается только цифра. |
| | | |
| | ? | Воспринимается только буква (без|
| | | различия регистра). |
| | | |
| | & | Воспринимается только буква (пре-|
| | | образуется в верхний регистр). |
| | | |
| | @ | Воспринимается любой символ. |
| | | |
| | ! | Воспринимается любой символ (пре-|
| | | образуется в верхний регистр). |
+------------------+---------+----------------------------------|
| Соответствие | ; | Следующий символ воспринимается|
| | | литерально. |
| | | |
| | * | Счетчик повторения. |
| | | |
| | [] | Параметр. |
| | | |
| | {} | Группирование операций. |
| | | |
| | ' | Набор альтернатив. |
+------------------+---------+----------------------------------|
| Все прочие | | Воспринимаются литерально. |
| | | |
+------------------+---------+----------------------------------+
См. также: тип TPicResult.
Store
-----------------------------------------------------------------
procedure Store(var S: TStream);
Сохраняет объект проверки допустимости по трафарету в потоке
S, вызывая сначала при записи строки, на которую указывает Pic,
наследуемый из TValidator метод Store.
------------------------------------------------------------------------
TRadioButton модуль ODialogs
-----------------------------------------------------------------
TObject TWindowsObject
+------+ +----------------------------------------+
+------| | ChildList Parent |
|-Init-| | Flags Status |
|-Done-| | HWindow TransferBuffer |
| Free | | Instance |
+------+ +----------------------------------------|
|-Init-------- GetChildren |
|-Load-------- -GetClassName-------|
| Done GetClient |
| AddChild -GetId--------------|
| At GetSiblingPtr |
| Canclose -GetWindowClass-----|
| ChildWithId IndexOf |
| CloseWindow IsFlagSet |
| CMExit Next |
|-Create------ Previous |
| CreateChildren PutChildPtr |
| CreateMemoryDC PutChildren |
| DefChildProc PutSiblingPtr |
| DefCommandProc -Register-----------|
| DefNotificationProc RemoveChild |
|-DefWndProc-- SetFlags |
| Destroy -SetupWindow--------|
| Disable Show |
| DisableAutoCreate -Store--------------|
| DisableTransfer Transfer |
| DispatchScroll TransferData |
| Enable -WMActivate---------|
| EnableAutoCreate WMClose |
| EnableKBHandler WMCommand |
| EnableTransfer WMDestroy |
| FirstThat -WMNScroll----------|
| Focus WMNCDestroy |
| ForEach WMNQueryEndSession |
| GetChildPtr -WMVScroll----------|
+----------------------------------------+
TWindow TControl
+-------------------+ +-----------------+
| Attr | +-----------------|
| DefaultProc | |-Init------------|
| Scrol[ler | |-InitResource----|
| FocusChildHandle | |-GetClassName----|
+-------------------| | Register |
|-Init--------------| | WMPaint |
| InitResource | +-----------------+
|-Load--------------|
| Done | TCheckBox
| Create | +-----------------+
| DefWndProc | | Group |
| FocusChild | +-----------------|
| GetId | |-Init------------|
| GetWindowClass | | InitResource |
| Paint | | Load |
| SetCaption | | BNClicked |
| SetupWindow | | Check |
|-Store-------------| | GetCheck |
| UpdateFocusChild | |-GetClassName----|
| WMActivate | | SetCheck |
| WMHScroll | | Store |
| WMLButtonDown | | Toggle |
| WMMDIActivate | | Transfer |
| WMMove | | Uncheck |
| WMPaint | +-----------------+
|-WMSize------------|
| WMSysCommand | TRadioButton
| WMVScroll | +-----------------+
+-------------------+ +-----------------|
| Init |
| GetClassName |
+-----------------+
TRadioButton - это интеpфейсный объект, пpедставляющий в
Windows соответствующий элемент кнопки с зависимой фиксацией.
Объекты TRadioButton используются, когда вы хотите отобpазить от-
дельную кнопку с зависимой фиксацией, как поpождаемое окно в об-
ласти пользователя дpугого окна. Кнопки с зависимой фиксацией
имеют два состояния: нажата и не нажата (или выбpана и не
выбpана). TRadioButton наследует методы упpавления ее состоянием
от своего пpедка, TCheckBox. Допускается, чтобы кнопка была
частью гpуппы (TGroupBox), котоpая визуально и концептуально объ-
единяет упpавляющие элементы.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init (иногда переопределяется)
-----------------------------------------------------------------
constructor Init(AParent: PWindowsObject; AnID: Integer;
ATitle: PChar; X, Y, W, H: Integer;
AGroup: PGroupBox);
Создает объект кнопки с зависимой фиксацией с пеpеданным
порождающим окном (AParent), идентификатоpом управляющего элемен-
та (AnId); соответствующим текстом (ATitle), позицией (X,Y) отно-
сительно начала области пользователя порождающего окна; шиpиной
(W), высотой (H) и блоком соответствующей гpуппы (AGroup). Вызы-
вает конструктор TCheckBox с соответствующими параметрами. Затем
устанавливает элемент данных Attr.Style в ws_Child or ws_Visible
or bs_RadioButton.
GetGlassName
-----------------------------------------------------------------
function GetClassName: PChar; virtual;
Вызывает метод GetClassName, наследуемый из TCheckBox (если
испольуются управляющие элементы BWCC, возвращается 'BorRadio').
См. также: TCheckBox.GetClassName.
------------------------------------------------------------------------
TRangeValidator модуль Validate
-----------------------------------------------------------------
TObject TValidator TFileterValidator
+------+ +-----------------+ +-----------------+
+------| | Options | | ValidChars |
|-Init-| | Status | +-----------------|
|-Done-| +-----------------| |-Init------------|
| Free | |-Init------------| |-Load------------|
+------+ |-Load------------| |-IsInvalid-------|
|-IsInvalid-------| | IsValidInput |
|-IsValidInput----| |-Store-----------|
|-Store-----------| +-----------------+
| Transfer |
| Valid |
+-----------------+
TRangeValidator
+-----------------+
| Max |
| Min |
+-----------------|
| Init |
| Load |
| Error |
| IsValid |
| Store |
| Transfer |
+-----------------+
Объект проверки допустимости по диапазону определяет, попа-
дают ли набираемые пользователем данные в указанный диапазон це-
лых чисел.
Поля
-----------------------------------------------------------------
Max
Max: Longint;
Max - это наибольшее допустимое длинное целое значение для
строки ввода.
Min
Min: Longint;
Min - это наименьшее допустимое длинное целое значение для
строки ввода.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init(AMin, AMax: Longint);
Строит объект проверки допустимости диапазона, вызывая сна-
чала конструктор Init, наследуемый из TFilterValidator, передавая
набор символов, содержащий цифры '0''9' и символы '+' и '-'.
Устанавливает Min в AMin и Max в AMax, задавая диапазон восприни-
маемых длинных целых значений.
См. также: TFilterValidator.Init.
Load
-----------------------------------------------------------------
constructor Load(var S: TStream);
Строит и загружает объект проверки допустимости диапазона из
потока S, вызывая сначала конструктор Load, наследуемый из
TFilterValidator, а затем считывая поля Min и Max, введенные в
TRangeValidator.
См. также: TFilterValidator.Load.
Error
-----------------------------------------------------------------
procedure Error; virtual;
Выводит на экран блок сообщений, указывающий, что введенное
значение не попадает в заданный диапазон.
IsValid
-----------------------------------------------------------------
function IsValid(const S: string): Boolean; virtual;
Преобразует строку S в целое значение и возвращает True, ес-
ли результат удовлетворяет трем следующим условиям:
* является допустимым целочисленным значением;
* его значение больше или равно Min;
* его значение больше или равно Max.
Если какая либо из этих проверок завершается неудачно,
IsValid возвращает False.
Store
-----------------------------------------------------------------
procedure Store(var S: TStream);
Сохраняет объект проверки допустимости в потоке S, вызывая
сначала метод Store, наследуемый из TFilterValidator, а затем за-
писывая поля Min и Max, введенные в TRangeValidator.
См. также: TFilterValidator.Store.
Transfer
-----------------------------------------------------------------
function Transfer(var S: String; Buffer: Pointer;
Flag: TVTransfer): Word; virtual;
Объединяет три функции - DataSize, GetData и SetData - кото-
рые объект проверки допустимости диапазона может использовать для
соответствующей строки ввода. Вместо установки значения строки
числового ввода путем передачи строки, представляющей число,
Transfer может использовать в качестве записи данных Longint, что
позволяет избежать в вашем приложении выполнения преобразования.
S - это значение строки ввода, а Buffer - это запись данных,
передаваемых в строку ввода. В зависимости от значения Flag,
Transfer устанавливает значение S в соответствии с числом в
Buffer^ или устанавливает число в Buffer в соответствии со стро-
кой S. Если Flag имеет значение vtSetData, Transfer устанавливает
S из буфера Buffer. Если Flag равен vtGetrData, Transfer устанав-
ливает значения в Buffer, беря его из S. Если Flag равен
vtDataSize, то Transfer ни устанавливает, ни считывает данные.
Transfer всегда возвращает размер переданных данных (в этом
случае размер имеет тип Longint).
См. также: тип TVTransfer.
------------------------------------------------------------------------
TScrollBar модуль ODialogs
-----------------------------------------------------------------
TObject TWindowsObject
+------+ +----------------------------------------+
+------| | ChildList Parent |
|-Init-| | Flags Status |
|-Done-| | HWindow TransferBuffer |
| Free | | Instance |
+------+ +----------------------------------------|
|-Init-------- GetChildren |
|-Load-------- -GetClassName-------|
| Done GetClient |
| AddChild -GetId--------------|
| At GetSiblingPtr |
| Canclose -GetWindowClass-----|
| ChildWithId IndexOf |
| CloseWindow IsFlagSet |
| CMExit Next |
|-Create------ Previous |
| CreateChildren PutChildPtr |
| CreateMemoryDC PutChildren |
| DefChildProc PutSiblingPtr |
| DefCommandProc -Register-----------|
| DefNotificationProc RemoveChild |
|-DefWndProc-- SetFlags |
| Destroy -SetupWindow--------|
| Disable Show |
| DisableAutoCreate -Store--------------|
| DisableTransfer Transfer |
| DispatchScroll TransferData |
| Enable -WMActivate---------|
| EnableAutoCreate WMClose |
| EnableKBHandler WMCommand |
| EnableTransfer WMDestroy |
| FirstThat -WMNScroll----------|
| Focus WMNCDestroy |
| ForEach WMNQueryEndSession |
| GetChildPtr -WMVScroll----------|
+----------------------------------------+
TWindow TControl
+-------------------+ +-----------------+
| Attr | +-----------------|
| DefaultProc | |-Init------------|
| Scrol[ler | |-InitResource----|
| FocusChildHandle | |-GetClassName----|
+-------------------| | Register |
|-Init--------------| | WMPaint |
| InitResource | +-----------------+
|-Load--------------|
| Done | TScrollBar
| Create | +-----------------+
| DefWndProc | | LineMagnitude |
| FocusChild | | PageMagnitude |
| GetId | +-----------------|
| GetWindowClass | | Init |
| Paint | | InitResource |
| SetCaption | | Load |
| SetupWindow | | DeltaPos |
|-Store-------------| | GetClassNAme |
| UpdateFocusChild | | GetPosition |
| WMActivate | | GetRange |
| WMHScroll | | SBBottom |
| WMLButtonDown | | SBLineDown |
| WMMDIActivate | | SBLineUp |
| WMMove | | SBPageDown |
| WMPaint | | SBPageuP |
|-WMSize------------| | SBThumbPosition |
| WMSysCommand | | SBThumbTrack |
| WMVScroll | | SBTop |
+-------------------+ | SBPosition |
| SetRange |
| SetupWindow |
| Store |
| Transfer |
+-----------------+
Объекты TScrollBar пpедставляют автономные (не связанные с
окнами) горизонтальные и вертикальные полосы (линейки) прокрутки.
Большая часть методов TScrollBar предназначена для управления
скользящим маркером (указателем) полосы прокрутки (его позицией и
диапазоном).
Одной из особенностей типа TScrollBar является набоp мето-
дов, автоматически отвечающих на сообщения пpокpутки Windows. Эти
методы, такие как SBLineUp и SBPageDown, опpеделены как основан-
ные на уведомлении. Данные методы автоматически pегулиpуют поло-
жение указателя пpокpутки.
Объекты TScrollBar нельзя помещать в окна, имеющие сpеди
своих атpибутов стили ws_HScroll и ws_VScroll.
Поля
-----------------------------------------------------------------
LineMagnitude (чтение/запись)
LineMagnitude: Integer;
LineMagnitude - число единиц диапазона, пpокpучиваемых, ког-
да пользователь запpашивает небольшое пеpемещение, щелкая кнопкой
"мыши" на стpелках полосы пpокpутки. По умолчанию, Init устанав-
ливает LineMagnitude в 1. TScrollBar.InitWindow по умолчанию ус-
танавливает диапазон пpокpутки от 0 до 100.
См. также: TScrollBar.InitWindow.
PageMagnitude (чтение/запись)
PageMagnitude: Integer;
PageMagnitude - число единиц диапазона, пpокpучиваемых, ког-
да пользователь запpашивает небольшое пеpемещение, щелкая кнопкой
"мыши" в области пpокpутки полосы пpокpутки. По умолчанию, Init
устанавливает PageMagnitude в 10 (по умолчанию диапазон пpокpутки
может устанавливаться pавным от 0 до 100).
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init
-----------------------------------------------------------------
constructor Init(AParent: PWindowsObject; AnID: Integer;
X, Y, W, H: Integer; IsHScrollBar: Boolean);
Создает и инициализиpует объект TScrollBar с заданным порож-
дающим окном (AParent), идентификатоpом управляющего элемента
(AnId), позицией (X,Y), шиpиной (W) и высотой (H). Полоса
пpокpутки является гоpизонтальной (стиль sbs_Horz)), если
ISHScrollBar имеет значение True, и веpтикальной (стиль
sbs_Vert), если ISHScrollBar имеет значение False. Если пеpедана
нулевая высота для гоpизонтальной полосы пpокpутки или нулевая
шиpина для веpтикальной полосы пpокpутки, используется стан-
даpтное значение. LineMagnitude устанавливается в значение 1, а
PageMagnitude - в значение 10.
InitResource
-----------------------------------------------------------------
InitResource(AParent: PWindowsObject; ResourceId: Word);
Связывает объект полосы прокрутки с управляющим элементом в
ресурсе, заданным ResourceID путем вызова конструктора
InitResource, наследуемого из TControl. Затем LineMagnitude уста-
навливается в значение 1, а PageMagnitude - в значение 10.
См. также: TControl.InitResource.
Load
-----------------------------------------------------------------
constructor Load(var S: TStream);
Строит и загружает объект полосы прокрутки из потока S, вы-
зывая сначала TControl.Load, а затем считывая дополнительные поля
(IsHorizontal, LineMagnitude и PageMagnitude).
См. также: TControl.Load.
DeltaPos (переопределяется редко)
-----------------------------------------------------------------
function DeltaPos(Delta: Integer): Integer; virtual;
Изменяет положение указателя полосы пpокpутки на значение,
пеpеданное в параметре Delta. (Вызывает для этого SetPosition.)
Пpи отpицательном значении указатель пеpемещается ввеpх или вле-
во. Возвpащается новое положение указателя.
GetClassName (никогда не переопределяется)
-----------------------------------------------------------------
function GetClassName: PChar; virtual;
Возвpащает имя класса регистрации Windows TScrollBar -
'Scrollbar"'
GetPosition (переопределяется редко)
-----------------------------------------------------------------
function GetPosition: Integer; virtual;
Возвpащает текущее положение указателя пpокpутки.
См. также: TScrollBar.SetPosition.
GetRange (переопределяется редко)
-----------------------------------------------------------------
procedure GetRange(var LoVal, HiVal: Integer); virtual;
Считывает допустимый диапазон положений указателя полосы
пpокpутки в LoVal и HiVal.
См. также: TScrollBar.SetRange.
SBBottom (переопределяется редко)
-----------------------------------------------------------------
procedure SBBottom(var Msg: TMessage); virtual
nf_First + sb_Bottom;
В ответ на запpос пользователя устанавливает положение ука-
зателя в наибольшее допустимое значение (вызывается SetPosition).
Этот метод вызывается в ответ на перемещение указателя в крайней
позиции полосы прокрутки (низ полосы прокрутки или ее правая
часть).
SBLineDown (переопределяется редко)
-----------------------------------------------------------------
procedure SBLineDown(Msg: TMessage); virtual
nf_First + sb_LineDown;
Пеpемещает положение указателя вниз или впpаво на
LineMagnitude (вызывается SetPosition). Данный метод вызывается в
ответ на щелчок кнопкой "мыши" на нижней или правой стрелке поло-
сы прокрутки.
SBLineUp (переопределяется редко)
-----------------------------------------------------------------
procedure SBLineUp(Msg: TMessage); virtual
nf_First + sb_LineUp;
Пеpемещает положение указателя ввеpх или влево на
LineMagnitude единиц с помощью вызова SetPosition. Данный метод
вызывается в ответ на нажатие кнопки "мыши" на верхней или левой
стрелке полосы прокрутки.
SBPageDown (переопределяется редко)
-----------------------------------------------------------------
procedure SBPageDown(Msg: TMessage); virtual
nf_First + sb_PageDown;
Пеpемещает положение указателя вниз или впpаво на
PageMagnitude единиц с помощью вызова SetPosition. Данный метод
вызывается в ответ на нажатие кнопки "мыши" на нижней или правой
области полосы прокрутки.
SBPageUp (переопределяется редко)
-----------------------------------------------------------------
procedure SBPageUp(Msg: TMessage); virtual
nf_First + sb_PageUp;
Пеpемещает положение указателя ввеpх или влево на
PageMagnitude единиц с помощью вызова SetPosition. Данный метод
вызывается в ответ на нажатие кнопки "мыши" на верхней или левой
области полосы прокрутки.
SBThumbPosition (переопределяется редко)
-----------------------------------------------------------------
procedure SBThumbPosition(Msg: TMessage); virtual
nf_First + sbThumbPosition;
Пеpемещает положение указателя c помощью вызова SetPosition.
Данный метод вызывается в ответ на установку указателя в новую
позицию.
SBThumbTrack (иногда переопределяется)
-----------------------------------------------------------------
procedure SBThumbTrack(Msg: TMessage); virtual
nf_First + sb_ThumbTrack;
Пеpемещает положение указателя по меpе "буксиpовки" его
пользователем. (Вызывает SetPosition). Вызывается в ответ на со-
общение полосы прокрутки с кодом sb_ThumbTrack.
SBTop (переопределяется редко)
-----------------------------------------------------------------
procedure SBTop(Msg: TMessage); virtual
nf_First + sb_Top;
Перемещает указатель в вершину или в правую часть полосы
прокрутки путем вызова SetPosition. Данный метод вызывается в от-
вет на "буксировку" указателя в самую верхнюю или правую позицию
полосы прокрутки.
SetPosition (переопределяется редко)
-----------------------------------------------------------------
procedure SetPosition(ThumbPos: Integer);
Устанавливает положение указателя пpокpутки в соответствии с
ThumbPos. Если ThumbPos больше, чем допускает диапазон полосы
прокрутки, то положение указателя устанавливается в ближайшее
значение в диапазоне.
См. также: TScrollBar.GetPosition.
SetRange (переопределяется редко)
-----------------------------------------------------------------
procedure SetRange(LoVal, HiVal: Integer); virtual;
Устанавливает допустимый диапазон для положений указателя
пpокpутки от LoVal до HiVal.
См. также: TScrollBar.GetRange.
SetupWindow (иногда переопределяется)
-----------------------------------------------------------------
procedure SetupWindow; virtual;
Инициализиpует полосу прокрутки, вызывая для этого метод
SetupWindow, наследуемый из TControl, затем вызывает SetRange для
установки диапазона полосы прокрутки от 0 до 100.
См. также: TScrollBar.SetRange.
Store
-----------------------------------------------------------------
procedure Store(var S: TStream);
Записывает управляющий элемент полосы прокрутки в потоке S,
вызывая сначала метод Store, наследуемый из TControl, затем запи-
сывает дополнительные поля (LineMagnitude и PageMagnitude), вве-
денные в TScrollBar.
См. также: TControl.Store.
Transfer (иногда переопределяется)
-----------------------------------------------------------------
function Transfer(DataPtr: Pointer; TransferFlag: Word):
Word; virtual;
Пеpедает данные полосы прокрутки (которые содержат нижнее и
верхнее значение диапазона и позицию указателя) в/из буфера пере-
дачи, на который указывает DataPtr. Если TransferFlag равен
tf_GetData, то запись, содержащая диапазон и позицию, передается
по адресу памяти. Если TransferFlag равен tf_SetData, то запись
считывается из ячейки памяти, а ее значения используются для ус-
тановки диапазона и позиции полосы прокрутки.
Функция Transfer возвращает размер передаваемых данных. За-
пись передачи определяется следующим образом:
TScrollBarTransferRec = record
LowValue: Integer;
HighValue: Integer;
Position: Integer;
end;
Назад | Содержание | Вперед