мета-данные страницы
  •  

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
special_params_in_scripts [15.10.2021 09:40]
Lingri
special_params_in_scripts [24.02.2022 06:22] (текущий)
Строка 7: Строка 7:
 {{:​pasted:​20211015-075314.png}} {{:​pasted:​20211015-075314.png}}
  
-Переменная scriptPercent не объявлена локально. Она попадает в скрипт "​извне"​. После отработки скрипта стоит вывод значения этой переменной.+Переменная scriptPercent не объявлена локально. Она попадает в скрипт "​извне"​. После отработки скрипта стоит вывод значения этой переменной. ​Она используется для отображения [[https://​doc.agb.is/​calc_info_script|информации о расчёте бонусов за заказ]]
  
 ===== Техническая часть ===== ===== Техническая часть =====
 Чтобы подобное реализовать,​ нужно доработать модуль **ScriptFunctions.pas**:​ Чтобы подобное реализовать,​ нужно доработать модуль **ScriptFunctions.pas**:​
   - В тип TExtScriptResInfo добавляем нужное поле; {{:​pasted:​20211015-075714.png}}   - В тип TExtScriptResInfo добавляем нужное поле; {{:​pasted:​20211015-075714.png}}
-  - В процедуре **TScriptExecutor.PSScriptCompile** регистрируем название новой переменной:​ //​Sender.AddRegisteredPTRVariable('​scriptItogSum',​ '​double'​);//​ +  - В процедуре **TScriptExecutor.PSScriptCompile**, являющейся обработчиком PSSCript.OnCompile, ​регистрируем название новой переменной:​ //​Sender.AddRegisteredPTRVariable('​scriptItogSum',​ '​double'​);//​ 
-  - В процедуре **TScriptExecutor.PSScriptExecute** связываем переменную с полем записи **ExtScriptResInfo**:​ //​PSScript.SetPointerToData('​scriptItogSum',​ @ExtScriptResInfo.scriptItogSum,​ PSScript.FindBaseType(btDouble));// +  - В процедуре **TScriptExecutor.PSScriptExecute**, являющейся обработчиком PSSCript.OnExecute, ​связываем переменную с полем записи **ExtScriptResInfo**:​ //​PSScript.SetPointerToData('​scriptItogSum',​ @ExtScriptResInfo.scriptItogSum,​ PSScript.FindBaseType(btDouble));//​
-  - В процедуре **TScriptExecutor.PSScriptAfterExecute** делаем вывод этой переменных в запись **ExtScriptResInfo**:​ //​ExtScriptResInfo.scriptPercent := VGetInt(PSScript.GetVariable('​scriptPercent'​));//+
  
 ==== Базовые типы переменных в скриптах ==== ==== Базовые типы переменных в скриптах ====
-^Базовый тип в скриптере ​  ​^Соответствующий тип Delphi ​  ^ +^ Базовый тип в скриптере ​  ^ Соответствующий тип Delphi ​  ^ 
-|btU8|Byte| +| btU8        | Byte      
-|btS8|ShortInt| +| btS8        | ShortInt ​ 
 +| btU16       | Word      | 
 +| btS16       | SmallInt ​ | 
 +| btU32       | Longword ​ | 
 +| btS32       | LongInt ​  | 
 +| btS64       | Int64     | 
 +| btSingle ​   | Single ​   | 
 +| btDouble ​   | Double ​   | 
 +| btExtended ​ | Extended ​ | 
 +| btVariant ​  | Variant ​  | 
 +| btString ​   | String ​   | 
 +| btWideString| WideString| 
 +| btChar ​     | Char      | 
 +| btWideChar ​ | WideChar ​ | 
 +| ||
 ==== Функции получения данных ==== ==== Функции получения данных ====