.. currentmodule:: TatInternalObject
Интерфейс пользователя
======================================================================
.. pas:function:: DragFilesToOS(Files, Effects: Array; OnDrop: TbtkScriptOperationObject=nil): TbtkDropEffect
Метод инициализирующий перетаскивание (Drag&Drop) файлов средствами
операционной системы.
Может быть вызван, к примеру, в обработчике ``OnCanStartDrag`` в мануальном
режиме DragAndDrop(свойство выборки "Начало перетаскивания" = "Ручной").
:param Array Files:
массив (или одна строка) имён файлов (с полным путём), файлы не обязаны
существовать на момент начала перетаскивания.
:param Array Effects:
массив(или одно значение) допустимых действий в результате
перетаскивания, если выбрано несколько - пользователь может выбрать
желаемое действие завршив перетаскивание отпусканием правой кнопки мыши
- вывалится меню. Порядок элементов в массиве не имеет никакого
значения.
:param TbtkScriptOperationObject OnDrop:
Параметр не обязательный.
Операция-обработчик, вызывается в тот момент, когда пользователь
отпустил кнопку мыши, до того как операционнкая система совершит
манипуляции над указанными перетаскиваемыми файлами. В этой операции
можно создать файлы над которыми будут совершены указанные действия,
если указанные при инициализации процесса файлы ещё не существуют.
Операция выполняется в том же контексте что и операция вызвавшая метод
``DragFilesToOS``.
Параметры обработчика:
``Args: TbtkNamedArgs``, содержит поля:
- *FileNames*: **array of string** - файлы(с указанием полных путей) к которым будет применён эффект перетаскивания.
- *DropEffect*: TbtkDragEffect - выбранный пользователем эффект.
:rtype: TbtkDropEffect
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:function:: GetShiftState(Key: Integer): Boolean
Метод позволяет определить нажата ли в данный момент одна из
функциональных клавиш (Alt, Ctrl, Shift)
:param Integer Key:
Код клавиши: ssCtrl, ssAlt, ssShift
:rtype: Boolean
.. code-block:: delphi
:caption: Пример использования
Ctrl := GetShiftState(ssCtrl);
Alt := GetShiftState(ssAlt);
Shift := GetShiftState(ssShift);
if Ctrl then
ShowMessage('Нажат Ctrl');
if Alt then
ShowMessage('Нажат Alt');
if Shift then
ShowMessage('Нажат Shift');
.. pas:attribute:: ScreenShot: TbtkScriptScreenShotObject
Создает объект типа TbtkScriptScreenShotObject.
Аттрибут только для чтения
:rtype: TbtkScriptScreenShotObject
.. warning:: Не реализовано
TbtkScriptScreenShotObject
----------------------------------------------------------------------
.. pas:class:: TbtkScriptScreenShotObject
Создание снимков окна и экрана
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:method:: PrintWindowClientArea(Form: TbtkScriptFormObject = ActiveForm): TbtkScriptBitMapImageObject
Сделать снимок рабочей области заданного окна. Без заголовка окна,
системного меню и границ окна.
:param TbtkScriptFormObject Form:
Окно
:rtype: TbtkScriptBitMapImageObject
.. pas:method:: PrintWindow(Form: TbtkScriptFormObject = ActiveForm): TbtkScriptBitMapImageObject
Сделать снимок заданного окна. Вместе с заголовком, системным меню и
границами окна.
:param TbtkScriptFormObject Form:
Окно
:rtype: TbtkScriptBitMapImageObject
.. code-block:: delphi
:caption: Пример использования
bmp := ScreenShot.PrintWindow;
jpgImg := BitMapToJpeg(bmp);
jpgImg.SaveToFile('Window.jpg');
.. pas:method:: PrintScreen(): TbtkScriptBitMapImageObject
Сделать снимок всего рабочего стола.
:rtype: TbtkScriptBitMapImageObject
.. code-block:: delphi
:caption: Пример использования
bmp := ScreenShot.PrintScreen;
jpgImg := BitMapToJpeg(bmp);
jpgImg.SaveToFile('Screen.jpg');
TbtkDropEffect
----------------
.. pas:class:: TbtkDropEffect
Перечисление. OLE Drag&Drop эффект бросания файла
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:attribute:: deLink
.. pas:attribute:: deMove
.. pas:attribute:: deCopy
.. pas:attribute:: deNone
Буфер обмена
----------------------------------------------------------------------
.. pas:function:: GetClipboardAsText(): String
Метод возвращает содержимое буфера обмена в текстовом представлении.
:rtype: String
.. pas:function:: GetClipboardAsSylk(): String
Метод возвращает содержимое буфера обмена в формате :term:`SYLK`.
Используется для получения полной информации о данных, скопированных
из Excel, таблиц Word и т.д.
:rtype: String
.. warning:: Не реализовано
.. pas:function:: CreateSYLKBufHelper(Buf: String=Clipboard sylk buf): TbtkMicrosoftSYLKHelper
Возвращает обект, содержащий методы получения информации о данных в
формате :term:`SYLK`.
:param String Buf:
Строка в формате :term:`SYLK`. Если аргумент не указан - берется значение из буфера обмена.
:rtype: TbtkMicrosoftSYLKHelper
.. code-block:: delphi
:caption: Пример использования
excel := CreateOLEObject('Excel.Application');
excel.Visible := False;
workBook :=
excel.WorkBooks.Open('D:\Belov\Problems\Xlsx\Test.xlsx');
workBook.ActiveSheet.Range('A1:C3').Copy;
sylkHelper := CreateSYLKBufHelper(GetClipboardAsSylk);
str := 'RowCount: ' + VarToStr(sylkHelper.RowCount) + #13#10
+ 'ColCount: ' + VarToStr(sylkHelper.ColCount) + #13#10;
for j := 0 to 2 do
for i := 0 to 2 do
str := str + '[' + VarToStr(i) + ',' + VarToStr(j) + '] = '
+ 'CellInternalValue: ' + sylkHelper.CellInternalValue(i, j)
+ '; CellValue: ' + VarToStr(sylkHelper.CellValue(i, j))
+ '; CellFormat: ' + VarToStr(sylkHelper.CellFormat(i, j)) + #13#10;
ShowMessage(str);
workBook := Null;
excel.Quit;
excel := Null;
.. warning:: Не поддерживается в :term:`Application Server`
TbtkMicrosoftSYLKFormat
```````````````````````
.. pas:class:: TbtkMicrosoftSYLKFormat
Перечисление
.. warning:: Не поддерживается в :term:`Application Server`
Возможные форматы ячеек :term:`SYLK`:
.. pas:attribute:: msfDefault
Общий формат
.. pas:attribute:: msfNumerical
Числовой формат
.. pas:attribute:: msfExponent
Экспоненциальный формат
.. pas:attribute:: msfCurrency
Денежный формат
.. pas:attribute:: msfDateTime
Дата/время
.. pas:attribute:: msfPercent
Процентный формат
.. pas:attribute:: msfDollar
Финансовый формат
.. pas:attribute:: msfFractional
Дробный формат
.. pas:attribute:: msfText
Текстовый формат
TbtkMicrosoftSYLKHelper
``````````````````````````````````````````````````````````````````````
.. pas:class:: TbtkMicrosoftSYLKHelper
Класс позволяет получить информацию о данных в формате :term:`SYLK`
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:attribute:: ColCount: Integer
Количество столбцов данных в формате :term:`SYLK`.
:rtype: Integer
.. code-block:: delphi
:caption: Пример использования
excel := CreateOLEObject('Excel.Application');
excel.Visible := False;
workBook :=
excel.WorkBooks.Open('D:\Belov\Problems\Xlsx\Test.xlsx');
workBook.ActiveSheet.Range('A1:C3').Copy;
sylkHelper := CreateSYLKBufHelper(GetClipboardAsSylk);
str := 'RowCount: ' + VarToStr(sylkHelper.RowCount) + #13#10
+ 'ColCount: ' + VarToStr(sylkHelper.ColCount) + #13#10;
for j := 0 to 2 do
for i := 0 to 2 do
str := str + '[' + VarToStr(i) + ',' + VarToStr(j) + '] = '
+ 'CellInternalValue: ' + sylkHelper.CellInternalValue(i, j)
+ '; CellValue: ' + VarToStr(sylkHelper.CellValue(i, j))
+ '; CellFormat: ' + VarToStr(sylkHelper.CellFormat(i, j)) + #13#10;
ShowMessage(str);
workBook := Null;
excel.Quit;
excel := Null;
.. pas:attribute:: RowCount: Integer
Количество строк данных в формате :term:`SYLK`.
:rtype: Integer
.. code-block:: delphi
:caption: Пример использования
excel := CreateOLEObject('Excel.Application');
excel.Visible := False;
workBook :=
excel.WorkBooks.Open('D:\Belov\Problems\Xlsx\Test.xlsx');
workBook.ActiveSheet.Range('A1:C3').Copy;
sylkHelper := CreateSYLKBufHelper(GetClipboardAsSylk);
str := 'RowCount: ' + VarToStr(sylkHelper.RowCount) + #13#10
+ 'ColCount: ' + VarToStr(sylkHelper.ColCount) + #13#10;
for j := 0 to 2 do
for i := 0 to 2 do
str := str + '[' + VarToStr(i) + ',' + VarToStr(j) + '] = '
+ 'CellInternalValue: ' + sylkHelper.CellInternalValue(i, j)
+ '; CellValue: ' + VarToStr(sylkHelper.CellValue(i, j))
+ '; CellFormat: ' + VarToStr(sylkHelper.CellFormat(i, j)) + #13#10;
ShowMessage(str);
workBook := Null;
excel.Quit;
excel := Null;
.. pas:method:: CellValue(Col, Row: Integer): Variant
Фактическое значение ячейки, приведенное к соответствующему типу
Variant.
Пример::
дата 20.02.1991. Возвращаемое значение: 20.02.1991 типа varDate
.. attention::
Формат :term:`SYLK` имеет ограничение - 255 символов на ячейку
(`источник `_).
При копировании ячеек, содержащих больший объем текста, этот **текст будет обрезан** до длины в 255 символов.
:param Integer Col:
Индекс колонки, относительно первой среди данных, начиная с 0. Например,
если данные скопированы из Excel, то значение *Col* соответствует индексу
колонки относительно первой скопированной.
:param Integer Row:
Индекс строки, относительно первой среди данных, начиная с 0. Например,
если данные скопированы из Excel, то значение *Row* соответствует индексу
строки относительно первой скопированной.
:rtype: Variant
.. code-block:: delphi
:caption: Пример использования
excel := CreateOLEObject('Excel.Application');
excel.Visible := False;
workBook :=
excel.WorkBooks.Open('D:\Belov\Problems\Xlsx\Test.xlsx');
workBook.ActiveSheet.Range('A1:C3').Copy;
sylkHelper := CreateSYLKBufHelper(GetClipboardAsSylk);
str := 'RowCount: ' + VarToStr(sylkHelper.RowCount) + #13#10
+ 'ColCount: ' + VarToStr(sylkHelper.ColCount) + #13#10;
for j := 0 to 2 do
for i := 0 to 2 do
str := str + '[' + VarToStr(i) + ',' + VarToStr(j) + '] = '
+ 'CellInternalValue: ' + sylkHelper.CellInternalValue(i, j)
+ '; CellValue: ' + VarToStr(sylkHelper.CellValue(i, j))
+ '; CellFormat: ' + VarToStr(sylkHelper.CellFormat(i, j)) + #13#10;
ShowMessage(str);
workBook := Null;
excel.Quit;
excel := Null;
.. pas:method:: CellFormat(Col, Row: Integer): TbtkMicrosoftSYLKFormat
Формат ячеейки :term:`SYLK` (подробнее см. TbtkMicrosoftSYLKFormat)
:param Integer Col:
Индекс колонки, относительно первой среди данных, начиная с 0. Например,
если данные скопированы из Excel, то значение *Col* соответствует индексу
колонки относительно первой скопированной.
:param Integer Row:
Индекс строки, относительно первой среди данных, начиная с 0. Например,
если данные скопированы из Excel, то значение *Row* соответствует индексу
строки относительно первой скопированной.
:rtype: TbtkMicrosoftSYLKFormat
.. code-block:: delphi
:caption: Пример использования
excel := CreateOLEObject('Excel.Application');
excel.Visible := False;
workBook :=
excel.WorkBooks.Open('D:\Belov\Problems\Xlsx\Test.xlsx');
workBook.ActiveSheet.Range('A1:C3').Copy;
sylkHelper := CreateSYLKBufHelper(GetClipboardAsSylk);
str := 'RowCount: ' + VarToStr(sylkHelper.RowCount) + #13#10
+ 'ColCount: ' + VarToStr(sylkHelper.ColCount) + #13#10;
for j := 0 to 2 do
for i := 0 to 2 do
str := str + '[' + VarToStr(i) + ',' + VarToStr(j) + '] = '
+ 'CellInternalValue: ' + sylkHelper.CellInternalValue(i, j)
+ '; CellValue: ' + VarToStr(sylkHelper.CellValue(i, j))
+ '; CellFormat: ' + VarToStr(sylkHelper.CellFormat(i, j)) + #13#10;
ShowMessage(str);
workBook := Null;
excel.Quit;
excel := Null;
.. pas:method:: CellInternalValue(Col, Row: Integer): String
Внутреннее (строковое) значение ячейки в формате :term:`SYLK`, без
наложения форматирования.
Пример::
дата 20.02.1991. Возвращаемое значение: 33289
.. attention::
Формат :term:`SYLK` имеет ограничение - 255 символов на ячейку
(`источник `_).
При копировании ячеек, содержащих больший объем текста, этот **текст будет обрезан** до длины в 255 символов.
:param Integer Col:
Индекс колонки, относительно первой среди данных, начиная с 0. Например,
если данные скопированы из Excel, то значение *Col* соответствует индексу
колонки относительно первой скопированной.
:param Integer Row:
Индекс строки, относительно первой среди данных, начиная с 0. Например,
если данные скопированы из Excel, то значение *Row* соответствует индексу
строки относительно первой скопированной.
:rtype: String
.. code-block:: delphi
:caption: Пример использования
excel := CreateOLEObject('Excel.Application');
excel.Visible := False;
workBook :=
excel.WorkBooks.Open('D:\Belov\Problems\Xlsx\Test.xlsx');
workBook.ActiveSheet.Range('A1:C3').Copy;
sylkHelper := CreateSYLKBufHelper(GetClipboardAsSylk);
str := 'RowCount: ' + VarToStr(sylkHelper.RowCount) + #13#10
+ 'ColCount: ' + VarToStr(sylkHelper.ColCount) + #13#10;
for j := 0 to 2 do
for i := 0 to 2 do
str := str + '[' + VarToStr(i) + ',' + VarToStr(j) + '] = '
+ 'CellInternalValue: ' + sylkHelper.CellInternalValue(i, j)
+ '; CellValue: ' + VarToStr(sylkHelper.CellValue(i, j))
+ '; CellFormat: ' + VarToStr(sylkHelper.CellFormat(i, j)) + #13#10;
ShowMessage(str);
workBook := Null;
excel.Quit;
excel := Null;
Диалоги
----------------------------------------------------------------------
.. pas:function:: ShowMessageEx(Msg: String; ParamNames, ParamValues: Array)
Функция выводит сообщение в модальном окне. Отличием от ``ShowMessage``
является то, что в метод можно передать параметры.
Допустимые параметры:
"Scale"
Определяет размер шрифта в процентном соотношении.
Новый размер расчитывается относительно размера используемого по умолчанию.
:param String Msg:
Текст сообщения
:param Array ParamNames:
Массив имен параметров
:param Array ParamValues:
Массив значений параметров
.. code-block:: delphi
:caption: Пример использования
MessageEx('Двукратно увеличенное сообщение', ['Scale'], [200]);
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:function:: MessageDlgEx(Msg: String; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Integer; ParamNames, ParamValues: Array): Variant
Метод открывает диалог с сообщением Msg и кнопками указанными в
массиве Buttons. Метод возвращает результат TModalResult, согласно
нажатой кнопке. Отличием от ``MessageDlg`` является то, что в метод можно
передать параметры. Допустимые параметры:
“DefaultButton”
указывает, какая кнопка будет назначена кнопкой по
умолчанию (на ней будет установлен фокус ввода при открытии диалога).
В качестве значения параметра указывается порядковый номер кнопки,
начиная с 1 (единицы).
"Scale"
определяет размер шрифта в процентном соотношении. Новый
размер расчитывается относительно размера используемого по умолчанию.
По умолчанию Scale равен 100.
:param String Msg:
Текст сообщения
:param TMsgDlgType DlgType:
Тип диалогового окна.
:param TMsgDlgButtons Buttons:
Массив кнопок, которые требуется отобразить в диалоговом окне
:param Integer HelpCtx:
Идентификатор окна контекстной справки данного окна, вызываемый по *F1*, либо по кнопке mbHelp. Если справочное окно не требуется, следует использовать ``0``.
:param Array ParamNames:
Массив имен параметров
:param Array ParamValues:
Массив значений параметров
:rtype: Variant
.. code-block:: delphi
:caption: Пример использования
case MessageDlgEx('да – нет - отмена '
, mtWarning
, [mbYes, mbNo, mbCancel], 0
, ['DefaultButton', 'Scale'], [2, 150]
) of
mrYes: ShowMessage('Да');
mrNo: ShowMessage('Нет');
mrOk: ShowMessage('Ok');
mrCancel: ShowMessage('Отмена');
mrAbort: ShowMessage('Отменить');
end;
.. warning::
В :term:`Application Server` вызов метода аналогичен вызову :pas:meth:`MessageDlg`, т.е. аргументы `ParamNames` и `ParamValues` будут проигнорированы.
.. pas:function:: DesignEditButton(EditSettings: String): String
Метод вызывает диалог настройки редакторов. В качестве параметра метода
передаётся строка содержащая текущие настройки. При закрытии диалога
настройки по кнопке "OK" метод вернёт строку, содержащую настройку. Если
диалог был закрыт по кнопке "Отмена", метод вернёт пустую строку.
Порядковый номер следования кнопки внутри массива определяет их порядок
расположения. Слева на право. Та кнопка, имя которой было первой в
массиве, будет крайней левой, последним в массиве - крайней правой.
Зарезервированы следующие имена кнопок:
Lookup#
Кнопка с тремя точками
Reset#
Кнопка сброса значения (крест)
OpenCard#
Открытие карточки (лист с ручкой)
Пользовательские кнопки могут иметь
произвольные имена, отличающееся от зарезервированных и не должны
оканчиваться символом #.
:param String EditSettings:
Cтрока содержащая текущие настройки редактора.
:rtype: String
.. warning:: Не реализовано
.. pas:function:: ShowButtonsDialog(Caption, Text: String; ColCount: Integer; Buttons: Variant; ImageList: String; FocusIndex: Integer): Integer
Данный метод вызывает диалоговое окно и возвращает номер нажатой кнопки.
Нумерация кнопок начинается с 0. Если нажата клавиша ESC, то вернет **-1**.
:param String Caption:
Заголовок окна.
:param String Text:
Информационный текст для пользователя.
:param Integer ColCount:
Количество кнопок в строке. Все кнопки выравниваются по левому краю.
Если не задан, то изображений на кнопках не будет.
:param Variant Buttons:
Массив кнопок. Каждая кнопка описывается вложенным массивом.
Формат описания: ``['Text', Imageindex, Enabled]``.
Text
Текст на кнопке
Imageindex
пиктограма, порядковый номер изображения в коллекции. Если
значение равно **-1**, то кнопка будет без картинки.
Enabled
Активность кнопки.
Последние 2 параметра необязательны. Если они не заданы, то кнопка будет
без изображения и/или активна.
:param String ImageList:
Системное имя коллекции изображения, откуда берутся пиктограмы кнопок.
:param Integer FocusIndex:
Номер кнопки в фокусе. Если данная кнопка неактивна, то в фокусе будет
первая активная кнопка.
:rtype: Integer
.. code-block:: delphi
:caption: Пример использования
ShowButtonsDialog('Перемещение', 'Вы действительно хотите переместить данный файл?',
2, [['Переместить все', 0, False], ['Переместить', 1, true], ['Не перемещать', -1],
['Отмена']], 'ImageList', 2);
case ShowButtonsDialog('Перемещение', 'Вы действительно хотите
переместить данные файлы?', 2, [['Переместить все'], ['Переместить'],
['Не перемещать'], ['Отмена']]) of
0: DoSomthing;
1: DoSomthing;
2: DoSomthing;
3: DoSomthing;
end;
.. pas:function:: ShowInfoForm(Message: String)
Отображает информационное сообщение с текстом *Message*. Сообщение будет
видимо до тех пор, пока не будет вызван метод ``HideInfoForm``. Если метод
будет вызван повторно, но с другим текстом, текст сообщения будет
изменён.
:param String Message:
Текст сообщения
.. pas:function:: HideInfoForm()
Скрывает информационное сообщение.
.. pas:function:: MessageDlg(Msg: String; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Integer): Integer
Показывает диалоговое окно с сообщением. Функция возвращает выбранный
пользователем вариант ответа (нажатую кнопку). Возможные возвращаемые
значения (в зависимости от того, какая кнопка из заданных нажата):
mbOk
возвращается mrOk
mbCancel
mrCancel
mbYes
mrYes
mbNo
mrNo
mbAbort
mrAbort
mbRetry
mrRetry
mbIgnore
mrIgnore
mbAll
mrAll
mbNoToAll
mrNoToAll
mbYesToAll
mrYesToAll
Можно использовать комбинацию клавиш *CTRL + C* для копирования текста
сообщения в буфер обмена.
:param String Msg:
Текст сообщение который будет выведен в диалоговом окне.
:param TMsgDlgType DlgType:
Тип диалога.
:param TMsgDlgButtons Buttons:
Массив кнопок, которые требуется отобразить в диалоговом окне.
:param Integer HelpCtx:
Контекст помощи (пишите 0).
:rtype: Integer
.. code-block:: delphi
:caption: Пример использования
If MessageDlg('Удалить?', mtConfirmation, 'mbYes, mbNo', 0) = mrYes then
Selection.Delete;
.. pas:function:: ShowProcessBar(Caption: String; Message: String; EventName: String; FinalValue: Integer)
Метод открывает модальное окно с полосой прогресса, которое слушает Pipe
канал *EventName*. Сообщения, приходящие с сервера должны содержать число
в диапазоне ``[0 .. FinalValue]``. По приходу сообщения с числом равным или
больше *FinalValue*, диалог будет закрыт. Если ``FinalValue = 0``, то диалог
будет закрыт при получении первого сообщения
:param String Caption:
Заголовок окна
:param String Message:
Текст сообщения
:param String EventName:
Имя Pipe канала
:param Integer FinalValue:
Финальное значение
.. warning:: Не реализовано
.. pas:function:: InputBox(Caption, Prompt, Default: String): String
Функция выводит диалог с полем ввода текстовой строки.
По умолчанию в поле отображается значение, переданное в параметре *Default*.
Если пользователь нажмёт в диалоге **"ОК"**, вернётся строка отображаемая в поле ввода.
Если пользователь нажмёт в диалоге **"Отмена"**, вернётся пустая строка.
:param String Caption:
Заголовок диалога.
:param String Prompt:
Текст в диалоге, около поля ввода.
:param String Default:
Текст по умолчанию.
:rtype: String
.. code-block:: delphi
:caption: Пример использования 1
r := InputBox('Введите строку', 'Тест метода InputBox', 'Значние по умолчанию');
ShowMessage('Возвращена строка: ' + r);
.. code-block:: delphi
:caption: Пример исползования 2:
SystemName := Trim(InputBox('Ввод','Введите системное имя класса.' + #13#10+
'Вы можете использовать символы % или * в конце для указания неизвестных символов.', ''));
if SystemName <> '' then
begin
c := SystemName[length(SystemName)];
if (c = '%') or (c = '*') then
begin
Delete(SystemName, length(SystemName), 1);
f := [loCaseInsensitive, loPartialKey];
end
else
f := [loCaseInsensitive];
if not Selection.Locate('ssystemname', Systemname, f ) then
MessageDlg('Не найдено', mtInformation, 'mbOk', 0 );
end;
.. pas:function:: InputQuery(Caption, Prompt, Value: String): Boolean
Метод отображает диалог с полем ввода, позволяющем пользователю ввести строку.
Если пользователь нажмёт кнопку **«OK»**, функция вернёт **True**, а в
переменную *Value* будет записана строка, введённая пользователем.
Если пользователь нажмёт кнопку **«Отмена»**, функция вернёт **False**.
:param String Caption:
Заголовок диалога.
:param String Prompt:
Текст в диалоге, около поля ввода.
:param String Value:
Переменная, в которую будет записано введённое пользователем значение.
:rtype: Boolean
.. code-block:: delphi
:caption: Пример использования
v := 'Значние по умолчанию';
if InputQuery('Введите строку', 'Тест метода InputBox', v) then
ShowMessage('Возвращена строка: ' + v);
.. pas:function:: ShowMessage(Str: String): String
Функция выводит сообщение Str в модальном окне.
:param String Str:
Текст сообщения
:rtype: String
.. pas:function:: SelectColor(Color: Integer): Variant
Метод принимает в качестве параметра *Color* исходный цвет. Если в
диалоге будет нажата кнопка **"OK**" в эту переменную будет записано новое
значение, а в качестве результата метод вернёт **True**. Если в диалоге была
нажата кнопка **"Отмена"**, метод вернёт **False**.
:param Integer Color:
Исходное значение цвета
:rtype: Variant
.. code-block:: delphi
:caption: Пример использования
C := $800000;
if SelectColor(C) then
ShowMessage('Выбран цвет: ' + VarToStr(C));
.. warning:: Не реализовано
.. pas:function:: EditStyleDlg(Style: String): String
Метод вызывает диалог настройки стиля раскраски. Диалог позволяет
выбрать существующий стиль, либо сформировать произвольный, задав
шрифт текста, размер, начертание, цвет и фон текста. При закрытии
модального окна настройки стиля по кнопки **"OK"** возвращаются настройки
стиля в виде строки, если сформирован произвольный стиль, либо
возвращается имя стиля из реестра, если выбран существующий стиль. При
закрытии по кнопке **"Отмена"** будет возращена строка переданная в
качестве параметра конструктору диалога. В качестве *Style* может
выступать строка свойств стиля в виде
``"C=clred;FN=Terminal;FS=12;FC=$440033;FB=1;FI=1;FU=0;FO=1;"``, либо имя стиля. Передача всех
свойств стиля в строке не обязательна.
С
Цвет фона
FN
название шрифта
FC
цвет шрифта
FS
размер шрифта
Свойства начертания, логического типа:
FB
жирный
FI
курсив
FU
подчеркнутый
FS
зачеркнутый
:param String Style:
Строка свойств стиля, либо имя стиля.
:rtype: String
.. code-block:: delphi
:caption: Пример использования
EditStyleDlg('C=clred;FN=Terminal;FS=12;FC=$440033;FB=1;FI=1;FU=0;FO=1;');
EditStyleDlg('Btk_AppStyle');
.. _ref_file_dialogs:
Файловые
``````````````````````````````````````````````````````````````````````
.. pas:function:: AskFileNameForSave(DefaultFileName: String): String
Вызывают окно сохранения файла, если пользователь файл не выбрал, то
возвращают пустую строку.
:param String DefaultFileName:
Полное имя файла по умолчанию, т.е. каталог, которые будет открываться в
диалоге.
:rtype: String
.. pas:function:: AskImageFileNameForSave(DefaultFileName: String): String
Вызывает окно сохранения файла-изображения, если пользователь файл не
выбрал, то возвращают пустую строку.
:param String DefaultFileName:
Полное имя файла по умолчанию, т.е.каталог, которые будет открываться в
диалоге.
:rtype: String
.. pas:function:: AskFileNameForOpen(DefaultFileName: String): String
.. note::
* Начиная с версии :term:`Application Server` 1.25.0_rc15,
поведение метода зависит от наличия установленного :ref:`плагина Gs3-browser-cmd `.
* Если :ref:`плагин Gs3-browser-cmd ` установлен,
то показывает системный диалог выбора файла и возвращает путь до выбранного файла.
Соответствует возвращаемому значению Global 1.
* Если :ref:`плагин Gs3-browser-cmd ` не установлен,
то будет задействован диалог менеджера загрузок, что приведет к возврату только имени файла, без пути.
Если пользователь не выбрал файл, то возвращает пустую строку.
:param String DefaultFileName:
* Если :ref:`плагин Gs3-browser-cmd ` установлен, то значение будет использовано как
путь до файла, который будет указан в диалоге при его открытии.
Если путь указан с именем файла, то имя файла будет указано по-умолчанию.
Если путь не указан или не существует, то каталог определяется операционной системой.
Обычно это последний открытый каталог.
* Если :ref:`плагин Gs3-browser-cmd ` не установлен, то значение будет использовано как
имя файла по-умолчанию.
:rtype: String
.. attention::
* Для соответствия возвращаемому значению Global 1 в :term:`Application Server` требуется установленный :ref:`плагин Gs3-browser-cmd `
.. versionchanged:: AS 1.25.0_rc15 Добавилась поддержка полного пути с помощью плагина Gs3-browser-cmd
.. seealso::
* :pas:meth:`AskFileNamesForOpen`
* :pas:meth:`AskFolderName`
.. pas:function:: AskFileNamesForOpen(DefaultFileName: String): Variant
.. note::
* Начиная с версии :term:`Application Server` 1.25.0_rc15,
поведение метода зависит от наличия установленного :ref:`плагина Gs3-browser-cmd `.
* Если :ref:`плагин Gs3-browser-cmd ` установлен,
то показывает системный диалог выбора файлов и возвращает Array с путями до выбранных файлов.
Соответствует возвращаемому значению Global 1.
* Если :ref:`плагин Gs3-browser-cmd ` не установлен,
то будет задействован диалог менеджера загрузок, что приведет к возврату Array c именами выбранных файлов, без путей.
Если пользователь не выбрал ни одного файла, то возвращает пустой массив.
:param String DefaultFileName:
* Если :ref:`плагин Gs3-browser-cmd ` установлен, то значение будет использовано как
путь до файла, который будет указан в диалоге при его открытии.
Если путь указан с именем файла, то имя файла будет указано по-умолчанию.
Если путь не указан или не существует, то каталог определяется операционной системой.
Обычно это последний открытый каталог.
* Если :ref:`плагин Gs3-browser-cmd ` не установлен, то значение будет использовано как
имя файла по-умолчанию.
:rtype: Array
.. attention::
* Для соответствия возвращаемым значениям Global 1 в :term:`Application Server` требуется установленный :ref:`плагин Gs3-browser-cmd `
.. versionchanged:: AS 1.25.0_rc15 Добавилась поддержка полного пути с помощью плагина Gs3-browser-cmd
.. seealso::
* :pas:meth:`AskFileNameForOpen`
* :pas:meth:`AskFolderName`
.. pas:function:: AskImageFileNameForOpen(DefaultFileName: String): String
Вызывает окно открытия файла-изображения, если пользователь файл не
выбрал, то возвращают пустую строку.
:param String DefaultFileName:
Полное имя файла по умолчанию, т.е.каталог, которые будет открываться в
диалоге.
:rtype: String
.. pas:function:: AskFolderName(var Path: String; Caption: String): boolean
.. note::
* Начиная с версии :term:`Application Server` 1.25.0_rc16,
поведение метода зависит от наличия установленного :ref:`плагина Gs3-browser-cmd `.
* Если :ref:`плагин Gs3-browser-cmd ` установлен,
* Если версия плагина 0.19.4 и выше,
то показывает системный диалог выбора каталога
* Если версия плагина ниже,
то показывает системный диалог выбора файла и надо выбрать файл или создать файл в пустой папке
* Если :ref:`плагин Gs3-browser-cmd ` не установлен,
то будет задействован диалог менеджера загрузок и показывается диалог выбора файла
:param String Path:
Путь, который будет указан в диалоге при его открытии.
* Если :ref:`плагин Gs3-browser-cmd ` установлен,
При подтверждении выбора пользователем в этом параметре будет возвращён путь к каталогу.
Соответствует возвращаемому значению в G1
* Если :ref:`плагин Gs3-browser-cmd ` не установлен,
При подтверждении выбора пользователем в этом параметре будет возвращёно имя выбранного файла.
:param String Caption:
Необязательный параметр.
Заголовок диалога выбора папки.
Если не задан, то будет использовано значение по умолчанию - "Выберите каталог".
.. note::
* Если :ref:`плагин Gs3-browser-cmd ` установлен,
Вместо заголовка, текст будет отображаться в поле описания
:rtype: boolean
:returns:
True
Пользователь подтвердил выбор каталога.
False
В остальных случаях.
.. attention::
* Для соответствия возвращаемому значению Global 1 в :term:`Application Server` требуется установленный :ref:`плагин Gs3-browser-cmd `
.. versionchanged:: AS 1.25.0_rc16 Появилась возможность использовать системный диалог выбора каталога и поддержка полного пути с помощью плагина Gs3-browser-cmd.
.. seealso::
* :pas:meth:`AskFileNameForOpen`
* :pas:meth:`AskFileNamesForOpen`
TMsgDlgType
```````````
.. pas:class:: TMsgDlgType
Перечисление. Тип диалога.
.. pas:attribute:: mtWarning
Отображает символ восклицания
.. pas:attribute:: mtCustom
Отображает только сообщение
.. pas:attribute:: mtConfirmation
Отображает знак вопроса
.. pas:attribute:: mtInformation
Отображает "i" в круге
.. pas:attribute:: mtError
Отображает красный "Х"
TMsgDlgButtons
``````````````
.. pas:class:: TMsgDlgButtons
Перечисление. Кнопки, которые будут расположены на диалоге.
.. pas:attribute:: mbYes
Отображает кнопку "Yes"
.. pas:attribute:: mbAbort
Отображает кнопку "Abort"
.. pas:attribute:: mbNoToAll
Отображает кнопку "No to all"
.. pas:attribute:: mbHelp
Отображает кнопку "Help"
.. pas:attribute:: mbYesToAll
Отображает кнопку "Yes to all"
.. pas:attribute:: mbAll
Отображает кнопку "All"
.. pas:attribute:: mbIgnore
Отображает кнопку "Ignore"
.. pas:attribute:: mbRetry
Отображает кнопку "Retry"
.. pas:attribute:: mbCancel
Отображает кнопку "Cancel"
.. pas:attribute:: mbOK
Отображает кнопку "Ok"
.. pas:attribute:: mbNo
Отображает кнопку "No"
Также предусмотрены массивы предопределенных комбинаций кнопок:
.. pas:attribute:: mbYesNoCancel
Включает в себя кнопки: mbYes, mbNO, mbCancel.
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:attribute:: mbYesAllNoAllCancel
Включает в себя кнопки: mbYes, mbYesToAll, mbNo, mbNoToAll, mbCancel.
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:attribute:: mbOKCancel
Включает в себя кнопки: mbOK, mbCancel.
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:attribute:: mbAbortRetryCancel
Включает в себя кнопки: mbAbort, mbRetry, mbCancel.
.. warning:: Не поддерживается в :term:`Application Server`
.. pas:attribute:: mbAbortIgnore
Включает в себя кнопки: mbAbort, mbIgnore.
.. warning:: Не поддерживается в :term:`Application Server`