По мотивам - Коротко. Сделал чудную штуку - переопределение слов
Коротко. Сделал описание части аксиоматики на Dephi, а части - на скриптах.
И сделал для этого обвязку генерируемую с модели.
Выглядит примерно так:
https://bitbucket.org/lulinalex/mindstream/commits/58dc1f79b8592717091c559c7cf0f8d509dbe97d
vtComboBoxWordsPack.pas:
vtComboBoxWordsPack.rc:
vtComboBoxWordsPack.rc.script:
vtComboTreeWordsPack.pas:
ScriptKeywordsPack.tpi:
Коротко. Сделал описание части аксиоматики на Dephi, а части - на скриптах.
И сделал для этого обвязку генерируемую с модели.
Выглядит примерно так:
https://bitbucket.org/lulinalex/mindstream/commits/58dc1f79b8592717091c559c7cf0f8d509dbe97d
vtComboBoxWordsPack.pas:
unit vtComboBoxWordsPack;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Библиотека "ScriptEngine$VT"
// Модуль: "vtComboBoxWordsPack.pas"
// Родные Delphi интерфейсы (.pas)
// Generated from UML model, root element: ScriptKeywordsPack::Class Shared Delphi::ScriptEngine$VT::vtComboBoxWords::vtComboBoxWordsPack
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{$Include ..\ScriptEngine\seDefine.inc}
interface
{$If not defined(NoScripts)}
uses
StdCtrls,
tfwScriptingInterfaces,
tfwRegisterableWord,
vtComboTree,
tfwAxiomaticsResNameGetter
;
{$IfEnd} //not NoScripts
implementation
{$If not defined(NoScripts)}
uses
tfwAxiomaticsResNameGetters,
vtComboBoxQS,
l3TreeInterfaces,
l3Filer,
l3Types,
l3Interfaces,
SysUtils,
TypInfo,
tfwTypeRegistrator
;
type
//#UC START# *D1FD416FEE23ci*
//#UC END# *D1FD416FEE23ci*
TvtComboBoxWordsPackResNameGetter = {final} class(TtfwAxiomaticsResNameGetter)
{* Регистрация скриптованой аксиоматики }
public
// realized methods
class function ResName: AnsiString; override;
//#UC START# *D1FD416FEE23publ*
//#UC END# *D1FD416FEE23publ*
end;//TvtComboBoxWordsPackResNameGetter
// start class TvtComboBoxWordsPackResNameGetter
class function TvtComboBoxWordsPackResNameGetter.ResName: AnsiString;
{-}
begin
Result := 'vtComboBoxWordsPack';
end;//TvtComboBoxWordsPackResNameGetter.ResName
{$R vtComboBoxWordsPack.res vtComboBoxWordsPack.rc}
type
TCustomComboBoxFriend = {abstract} class(TCustomComboBox)
{* Друг для TCustomComboBox }
end;//TCustomComboBoxFriend
TkwPopComboBoxDropDown = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboBox:DropDown
*Пример:*
[code]
aValue aComboBox pop:ComboBox:DropDown
[code] }
private
// private methods
procedure DropDown(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
aValue: Boolean);
{* Реализация слова скрипта pop:ComboBox:DropDown }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboBoxDropDown
// start class TkwPopComboBoxDropDown
procedure TkwPopComboBoxDropDown.DropDown(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
aValue: Boolean);
//#UC START# *D4660B294082_B7676CD1AAB3_var*
//#UC END# *D4660B294082_B7676CD1AAB3_var*
begin
//#UC START# *D4660B294082_B7676CD1AAB3_impl*
aCombobox.DroppedDown := aValue;
//#UC END# *D4660B294082_B7676CD1AAB3_impl*
end;//TkwPopComboBoxDropDown.DropDown
procedure TkwPopComboBoxDropDown.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboBox : TCustomComboBox;
l_aValue : Boolean;
begin
try
l_aComboBox := TCustomComboBox(aCtx.rEngine.PopObjAs(TCustomComboBox));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboBox: TCustomComboBox : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aValue := (aCtx.rEngine.PopBool);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aValue: Boolean : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
DropDown(aCtx, l_aComboBox, l_aValue);
end;//TkwPopComboBoxDropDown.DoDoIt
class function TkwPopComboBoxDropDown.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboBox:DropDown';
end;//TkwPopComboBoxDropDown.GetWordNameForRegister
function TkwPopComboBoxDropDown.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboBoxDropDown.GetResultTypeInfo
type
TkwPopComboBoxGetItemIndex = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboBox:GetItemIndex
*Тип результата:* Integer
*Пример:*
[code]
INTEGER VAR l_Integer
aComboBox pop:ComboBox:GetItemIndex >>> l_Integer
[code] }
private
// private methods
function GetItemIndex(const aCtx: TtfwContext;
aComboBox: TCustomComboBox): Integer;
{* Реализация слова скрипта pop:ComboBox:GetItemIndex }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboBoxGetItemIndex
// start class TkwPopComboBoxGetItemIndex
function TkwPopComboBoxGetItemIndex.GetItemIndex(const aCtx: TtfwContext;
aComboBox: TCustomComboBox): Integer;
//#UC START# *0DE7BD329B92_731890DC5F90_var*
//#UC END# *0DE7BD329B92_731890DC5F90_var*
begin
//#UC START# *0DE7BD329B92_731890DC5F90_impl*
Result := aCombobox.ItemIndex;
//#UC END# *0DE7BD329B92_731890DC5F90_impl*
end;//TkwPopComboBoxGetItemIndex.GetItemIndex
procedure TkwPopComboBoxGetItemIndex.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboBox : TCustomComboBox;
begin
try
l_aComboBox := TCustomComboBox(aCtx.rEngine.PopObjAs(TCustomComboBox));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboBox: TCustomComboBox : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
aCtx.rEngine.PushInt((GetItemIndex(aCtx, l_aComboBox)));
end;//TkwPopComboBoxGetItemIndex.DoDoIt
class function TkwPopComboBoxGetItemIndex.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboBox:GetItemIndex';
end;//TkwPopComboBoxGetItemIndex.GetWordNameForRegister
function TkwPopComboBoxGetItemIndex.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := TypeInfo(Integer);
end;//TkwPopComboBoxGetItemIndex.GetResultTypeInfo
type
TkwPopComboBoxIndexOf = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboBox:IndexOf
*Тип результата:* Integer
*Пример:*
[code]
INTEGER VAR l_Integer
aString aComboBox pop:ComboBox:IndexOf >>> l_Integer
[code] }
private
// private methods
function IndexOf(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
const aString: AnsiString): Integer;
{* Реализация слова скрипта pop:ComboBox:IndexOf }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboBoxIndexOf
// start class TkwPopComboBoxIndexOf
function TkwPopComboBoxIndexOf.IndexOf(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
const aString: AnsiString): Integer;
//#UC START# *56A99D643C95_697C86093610_var*
//#UC END# *56A99D643C95_697C86093610_var*
begin
//#UC START# *56A99D643C95_697C86093610_impl*
Result := aCombobox.Items.IndexOf(aString);
//#UC END# *56A99D643C95_697C86093610_impl*
end;//TkwPopComboBoxIndexOf.IndexOf
procedure TkwPopComboBoxIndexOf.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboBox : TCustomComboBox;
l_aString : AnsiString;
begin
try
l_aComboBox := TCustomComboBox(aCtx.rEngine.PopObjAs(TCustomComboBox));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboBox: TCustomComboBox : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aString := (aCtx.rEngine.PopDelphiString);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aString: AnsiString : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
aCtx.rEngine.PushInt((IndexOf(aCtx, l_aComboBox, l_aString)));
end;//TkwPopComboBoxIndexOf.DoDoIt
class function TkwPopComboBoxIndexOf.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboBox:IndexOf';
end;//TkwPopComboBoxIndexOf.GetWordNameForRegister
function TkwPopComboBoxIndexOf.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := TypeInfo(Integer);
end;//TkwPopComboBoxIndexOf.GetResultTypeInfo
type
TkwPopComboBoxSelectItem = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboBox:SelectItem
*Пример:*
[code]
aString aComboBox pop:ComboBox:SelectItem
[code] }
private
// private methods
procedure SelectItem(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
const aString: AnsiString);
{* Реализация слова скрипта pop:ComboBox:SelectItem }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboBoxSelectItem
// start class TkwPopComboBoxSelectItem
procedure TkwPopComboBoxSelectItem.SelectItem(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
const aString: AnsiString);
//#UC START# *BC0BF0E96B69_E94AE4FC3D32_var*
//#UC END# *BC0BF0E96B69_E94AE4FC3D32_var*
begin
//#UC START# *BC0BF0E96B69_E94AE4FC3D32_impl*
TCustomComboBoxFriend(aCombobox).SelectItem(aString);
//#UC END# *BC0BF0E96B69_E94AE4FC3D32_impl*
end;//TkwPopComboBoxSelectItem.SelectItem
procedure TkwPopComboBoxSelectItem.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboBox : TCustomComboBox;
l_aString : AnsiString;
begin
try
l_aComboBox := TCustomComboBox(aCtx.rEngine.PopObjAs(TCustomComboBox));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboBox: TCustomComboBox : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aString := (aCtx.rEngine.PopDelphiString);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aString: AnsiString : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
SelectItem(aCtx, l_aComboBox, l_aString);
end;//TkwPopComboBoxSelectItem.DoDoIt
class function TkwPopComboBoxSelectItem.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboBox:SelectItem';
end;//TkwPopComboBoxSelectItem.GetWordNameForRegister
function TkwPopComboBoxSelectItem.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboBoxSelectItem.GetResultTypeInfo
type
TkwPopComboBoxSetItemIndex = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboBox:SetItemIndex
*Пример:*
[code]
anIndex aComboBox pop:ComboBox:SetItemIndex
[code] }
private
// private methods
procedure SetItemIndex(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
anIndex: Integer);
{* Реализация слова скрипта pop:ComboBox:SetItemIndex }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboBoxSetItemIndex
// start class TkwPopComboBoxSetItemIndex
procedure TkwPopComboBoxSetItemIndex.SetItemIndex(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
anIndex: Integer);
//#UC START# *589DC0B1C0D3_DF10F6F55A61_var*
//#UC END# *589DC0B1C0D3_DF10F6F55A61_var*
begin
//#UC START# *589DC0B1C0D3_DF10F6F55A61_impl*
aCombobox.ItemIndex := anIndex;
TCustomComboBoxFriend(aCombobox).Select;
//#UC END# *589DC0B1C0D3_DF10F6F55A61_impl*
end;//TkwPopComboBoxSetItemIndex.SetItemIndex
procedure TkwPopComboBoxSetItemIndex.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboBox : TCustomComboBox;
l_anIndex : Integer;
begin
try
l_aComboBox := TCustomComboBox(aCtx.rEngine.PopObjAs(TCustomComboBox));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboBox: TCustomComboBox : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_anIndex := (aCtx.rEngine.PopInt);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра anIndex: Integer : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
SetItemIndex(aCtx, l_aComboBox, l_anIndex);
end;//TkwPopComboBoxSetItemIndex.DoDoIt
class function TkwPopComboBoxSetItemIndex.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboBox:SetItemIndex';
end;//TkwPopComboBoxSetItemIndex.GetWordNameForRegister
function TkwPopComboBoxSetItemIndex.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboBoxSetItemIndex.GetResultTypeInfo
type
TkwPopComboBoxSaveItems = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboBox:SaveItems
[panel]*Формат:* имя_файла контрол pop:ComboBox:SaveItems
*Описание:* Сохраняет все пункты выпадающего списка (задается параметром контрол) в файл (задается параметром имя_файла) и сравнивает с эталоном.
*Пример:*
[code]
'MyList.cmbx' 'StyleComboBox' byname:control:push pop:ComboBox:SaveItems
[code]
*Результат:* Сохраняет содержимое комбобокса 'StyleComboBox' в файл 'MyList.cmbx' и сравнивает с эталоном.[panel]
*Пример:*
[code]
aFileName aComboBox pop:ComboBox:SaveItems
[code] }
private
// private methods
procedure SaveItems(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
const aFileName: AnsiString);
{* Реализация слова скрипта pop:ComboBox:SaveItems }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboBoxSaveItems
// start class TkwPopComboBoxSaveItems
procedure TkwPopComboBoxSaveItems.SaveItems(const aCtx: TtfwContext;
aComboBox: TCustomComboBox;
const aFileName: AnsiString);
//#UC START# *414096239FD4_F4F78563FAA5_var*
var
l_S: AnsiString;
l_Filer : Tl3CustomDosFiler;
I: Integer;
l_Count: Integer;
//#UC END# *414096239FD4_F4F78563FAA5_var*
begin
//#UC START# *414096239FD4_F4F78563FAA5_impl*
l_S := aCtx.rCaller.ResolveOutputFilePath(aFileName);
l_S := ChangeFileExt(l_S, '.cmbx');
l_Filer := Tl3CustomDosFiler.Make(l_S, l3_fmWrite, false);
try
l_Filer.Open;
try
l_Count := aCombobox.Items.Count;
for I := 0 to l_Count - 1 do
l_Filer.WriteLn(aCombobox.Items[I]);
finally
l_Filer.Close;
end;
finally
FreeAndNil(l_Filer);
end;//try..finally
//#UC END# *414096239FD4_F4F78563FAA5_impl*
end;//TkwPopComboBoxSaveItems.SaveItems
procedure TkwPopComboBoxSaveItems.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboBox : TCustomComboBox;
l_aFileName : AnsiString;
begin
try
l_aComboBox := TCustomComboBox(aCtx.rEngine.PopObjAs(TCustomComboBox));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboBox: TCustomComboBox : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aFileName := (aCtx.rEngine.PopDelphiString);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aFileName: AnsiString : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
SaveItems(aCtx, l_aComboBox, l_aFileName);
end;//TkwPopComboBoxSaveItems.DoDoIt
class function TkwPopComboBoxSaveItems.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboBox:SaveItems';
end;//TkwPopComboBoxSaveItems.GetWordNameForRegister
function TkwPopComboBoxSaveItems.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboBoxSaveItems.GetResultTypeInfo
type
TkwPopComboTreeDropDown = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboTree:DropDown
*Пример:*
[code]
aValue aComboTree pop:ComboTree:DropDown
[code] }
private
// private methods
procedure DropDown(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
aValue: Boolean);
{* Реализация слова скрипта pop:ComboTree:DropDown }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboTreeDropDown
// start class TkwPopComboTreeDropDown
procedure TkwPopComboTreeDropDown.DropDown(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
aValue: Boolean);
//#UC START# *BB9DD9C656EE_CBB40EABEDB6_var*
//#UC END# *BB9DD9C656EE_CBB40EABEDB6_var*
begin
//#UC START# *BB9DD9C656EE_CBB40EABEDB6_impl*
aComboTree.Dropped := aValue;
//#UC END# *BB9DD9C656EE_CBB40EABEDB6_impl*
end;//TkwPopComboTreeDropDown.DropDown
procedure TkwPopComboTreeDropDown.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboTree : TvtComboTree;
l_aValue : Boolean;
begin
try
l_aComboTree := TvtComboTree(aCtx.rEngine.PopObjAs(TvtComboTree));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboTree: TvtComboTree : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aValue := (aCtx.rEngine.PopBool);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aValue: Boolean : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
DropDown(aCtx, l_aComboTree, l_aValue);
end;//TkwPopComboTreeDropDown.DoDoIt
class function TkwPopComboTreeDropDown.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboTree:DropDown';
end;//TkwPopComboTreeDropDown.GetWordNameForRegister
function TkwPopComboTreeDropDown.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboTreeDropDown.GetResultTypeInfo
type
TkwPopComboTreeGetItemIndex = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboTree:GetItemIndex
*Тип результата:* Integer
*Пример:*
[code]
INTEGER VAR l_Integer
aComboTree pop:ComboTree:GetItemIndex >>> l_Integer
[code] }
private
// private methods
function GetItemIndex(const aCtx: TtfwContext;
aComboTree: TvtComboTree): Integer;
{* Реализация слова скрипта pop:ComboTree:GetItemIndex }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboTreeGetItemIndex
// start class TkwPopComboTreeGetItemIndex
function TkwPopComboTreeGetItemIndex.GetItemIndex(const aCtx: TtfwContext;
aComboTree: TvtComboTree): Integer;
//#UC START# *1C4FCF6402FE_FDB2008A1DAA_var*
//#UC END# *1C4FCF6402FE_FDB2008A1DAA_var*
begin
//#UC START# *1C4FCF6402FE_FDB2008A1DAA_impl*
if Assigned(aComboTree.ChoosenValue) then
Result := aComboTree.FindIndexOf(aComboTree.ChoosenValue)
else
Result := aComboTree.ItemIndex;
//#UC END# *1C4FCF6402FE_FDB2008A1DAA_impl*
end;//TkwPopComboTreeGetItemIndex.GetItemIndex
procedure TkwPopComboTreeGetItemIndex.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboTree : TvtComboTree;
begin
try
l_aComboTree := TvtComboTree(aCtx.rEngine.PopObjAs(TvtComboTree));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboTree: TvtComboTree : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
aCtx.rEngine.PushInt((GetItemIndex(aCtx, l_aComboTree)));
end;//TkwPopComboTreeGetItemIndex.DoDoIt
class function TkwPopComboTreeGetItemIndex.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboTree:GetItemIndex';
end;//TkwPopComboTreeGetItemIndex.GetWordNameForRegister
function TkwPopComboTreeGetItemIndex.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := TypeInfo(Integer);
end;//TkwPopComboTreeGetItemIndex.GetResultTypeInfo
type
TkwPopComboTreeIndexOf = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboTree:IndexOf
*Тип результата:* Integer
*Пример:*
[code]
INTEGER VAR l_Integer
aString aComboTree pop:ComboTree:IndexOf >>> l_Integer
[code] }
private
// private methods
function IndexOf(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
const aString: AnsiString): Integer;
{* Реализация слова скрипта pop:ComboTree:IndexOf }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboTreeIndexOf
// start class TkwPopComboTreeIndexOf
function TkwPopComboTreeIndexOf.IndexOf(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
const aString: AnsiString): Integer;
//#UC START# *6E676C6B7B53_C0C842FB1A8C_var*
//#UC END# *6E676C6B7B53_C0C842FB1A8C_var*
begin
//#UC START# *6E676C6B7B53_C0C842FB1A8C_impl*
Result := aComboTree.Items.IndexOf(aString);
//#UC END# *6E676C6B7B53_C0C842FB1A8C_impl*
end;//TkwPopComboTreeIndexOf.IndexOf
procedure TkwPopComboTreeIndexOf.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboTree : TvtComboTree;
l_aString : AnsiString;
begin
try
l_aComboTree := TvtComboTree(aCtx.rEngine.PopObjAs(TvtComboTree));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboTree: TvtComboTree : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aString := (aCtx.rEngine.PopDelphiString);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aString: AnsiString : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
aCtx.rEngine.PushInt((IndexOf(aCtx, l_aComboTree, l_aString)));
end;//TkwPopComboTreeIndexOf.DoDoIt
class function TkwPopComboTreeIndexOf.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboTree:IndexOf';
end;//TkwPopComboTreeIndexOf.GetWordNameForRegister
function TkwPopComboTreeIndexOf.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := TypeInfo(Integer);
end;//TkwPopComboTreeIndexOf.GetResultTypeInfo
type
TkwPopComboTreeSelectItem = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboTree:SelectItem
*Пример:*
[code]
aString aComboTree pop:ComboTree:SelectItem
[code] }
private
// private methods
procedure SelectItem(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
const aString: AnsiString);
{* Реализация слова скрипта pop:ComboTree:SelectItem }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboTreeSelectItem
// start class TkwPopComboTreeSelectItem
procedure TkwPopComboTreeSelectItem.SelectItem(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
const aString: AnsiString);
//#UC START# *8E1C1B564723_B5A21C7BEE37_var*
//#UC END# *8E1C1B564723_B5A21C7BEE37_var*
begin
//#UC START# *8E1C1B564723_B5A21C7BEE37_impl*
aComboTree.ItemIndex := aComboTree.Items.IndexOf(aString);
//#UC END# *8E1C1B564723_B5A21C7BEE37_impl*
end;//TkwPopComboTreeSelectItem.SelectItem
procedure TkwPopComboTreeSelectItem.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboTree : TvtComboTree;
l_aString : AnsiString;
begin
try
l_aComboTree := TvtComboTree(aCtx.rEngine.PopObjAs(TvtComboTree));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboTree: TvtComboTree : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aString := (aCtx.rEngine.PopDelphiString);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aString: AnsiString : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
SelectItem(aCtx, l_aComboTree, l_aString);
end;//TkwPopComboTreeSelectItem.DoDoIt
class function TkwPopComboTreeSelectItem.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboTree:SelectItem';
end;//TkwPopComboTreeSelectItem.GetWordNameForRegister
function TkwPopComboTreeSelectItem.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboTreeSelectItem.GetResultTypeInfo
type
TkwPopComboTreeSetItemIndex = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboTree:SetItemIndex
*Пример:*
[code]
anIndex aComboTree pop:ComboTree:SetItemIndex
[code] }
private
// private methods
procedure SetItemIndex(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
anIndex: Integer);
{* Реализация слова скрипта pop:ComboTree:SetItemIndex }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboTreeSetItemIndex
// start class TkwPopComboTreeSetItemIndex
procedure TkwPopComboTreeSetItemIndex.SetItemIndex(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
anIndex: Integer);
//#UC START# *6A72CBA7686D_8C448529271A_var*
var
l_Node: Il3SimpleNode;
//#UC END# *6A72CBA7686D_8C448529271A_var*
begin
//#UC START# *6A72CBA7686D_8C448529271A_impl*
if (aComboTree is TvtComboBoxQS) then //561950536
aComboTree.ItemIndex := anIndex
else
begin
l_Node := aComboTree.Tree.GetNode(anIndex);
aComboTree.Tree.GotoOnNode(l_Node);
aComboTree.ShowNode(l_Node, True);
end;//aComboTree is TvtComboBoxQS
//#UC END# *6A72CBA7686D_8C448529271A_impl*
end;//TkwPopComboTreeSetItemIndex.SetItemIndex
procedure TkwPopComboTreeSetItemIndex.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboTree : TvtComboTree;
l_anIndex : Integer;
begin
try
l_aComboTree := TvtComboTree(aCtx.rEngine.PopObjAs(TvtComboTree));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboTree: TvtComboTree : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_anIndex := (aCtx.rEngine.PopInt);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра anIndex: Integer : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
SetItemIndex(aCtx, l_aComboTree, l_anIndex);
end;//TkwPopComboTreeSetItemIndex.DoDoIt
class function TkwPopComboTreeSetItemIndex.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboTree:SetItemIndex';
end;//TkwPopComboTreeSetItemIndex.GetWordNameForRegister
function TkwPopComboTreeSetItemIndex.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboTreeSetItemIndex.GetResultTypeInfo
type
TkwPopComboTreeSaveItems = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboTree:SaveItems
[panel]*Формат:* имя_файла контрол pop:ComboBox:SaveItems
*Описание:* Сохраняет все пункты выпадающего списка (задается параметром контрол) в файл (задается параметром имя_файла) и сравнивает с эталоном.
*Пример:*
[code]
'MyList.cmbx' 'StyleComboBox' byname:control:push pop:ComboBox:SaveItems
[code]
*Результат:* Сохраняет содержимое комбобокса 'StyleComboBox' в файл 'MyList.cmbx' и сравнивает с эталоном.[panel]
*Пример:*
[code]
aFileName aComboTree pop:ComboTree:SaveItems
[code] }
private
// private methods
procedure SaveItems(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
const aFileName: AnsiString);
{* Реализация слова скрипта pop:ComboTree:SaveItems }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboTreeSaveItems
// start class TkwPopComboTreeSaveItems
procedure TkwPopComboTreeSaveItems.SaveItems(const aCtx: TtfwContext;
aComboTree: TvtComboTree;
const aFileName: AnsiString);
//#UC START# *1F4D33D465E4_957FA5E0E3AB_var*
var
l_S: AnsiString;
l_Filer : Tl3CustomDosFiler;
//#UC END# *1F4D33D465E4_957FA5E0E3AB_var*
begin
//#UC START# *1F4D33D465E4_957FA5E0E3AB_impl*
l_S := aCtx.rCaller.ResolveOutputFilePath(aFileName);
l_S := ChangeFileExt(l_S, '.cmbx');
l_Filer := Tl3CustomDosFiler.Make(l_S, l3_fmWrite, false);
try
l_Filer.Open;
try
l_Filer.WriteLn((aComboTree.Items as Il3Strings).Items.Text);
finally
l_Filer.Close;
end;
finally
FreeAndNil(l_Filer);
end;//try..finally
//#UC END# *1F4D33D465E4_957FA5E0E3AB_impl*
end;//TkwPopComboTreeSaveItems.SaveItems
procedure TkwPopComboTreeSaveItems.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboTree : TvtComboTree;
l_aFileName : AnsiString;
begin
try
l_aComboTree := TvtComboTree(aCtx.rEngine.PopObjAs(TvtComboTree));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboTree: TvtComboTree : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
try
l_aFileName := (aCtx.rEngine.PopDelphiString);
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aFileName: AnsiString : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
SaveItems(aCtx, l_aComboTree, l_aFileName);
end;//TkwPopComboTreeSaveItems.DoDoIt
class function TkwPopComboTreeSaveItems.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboTree:SaveItems';
end;//TkwPopComboTreeSaveItems.GetWordNameForRegister
function TkwPopComboTreeSaveItems.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := @tfw_tiVoid;
end;//TkwPopComboTreeSaveItems.GetResultTypeInfo
{$IfEnd} //not NoScripts
initialization
{$If not defined(NoScripts)}
// Регистрация скриптованой аксиоматики
TvtComboBoxWordsPackResNameGetter.Register;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboBox_DropDown
TkwPopComboBoxDropDown.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboBox_GetItemIndex
TkwPopComboBoxGetItemIndex.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboBox_IndexOf
TkwPopComboBoxIndexOf.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboBox_SelectItem
TkwPopComboBoxSelectItem.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboBox_SetItemIndex
TkwPopComboBoxSetItemIndex.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboBox_SaveItems
TkwPopComboBoxSaveItems.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboTree_DropDown
TkwPopComboTreeDropDown.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboTree_GetItemIndex
TkwPopComboTreeGetItemIndex.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboTree_IndexOf
TkwPopComboTreeIndexOf.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboTree_SelectItem
TkwPopComboTreeSelectItem.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboTree_SetItemIndex
TkwPopComboTreeSetItemIndex.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация pop_ComboTree_SaveItems
TkwPopComboTreeSaveItems.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа TtfwContext
TtfwTypeRegistrator.RegisterType(@tfw_tiStruct);
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа TCustomComboBox
TtfwTypeRegistrator.RegisterType(TypeInfo(TCustomComboBox));
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа Boolean
TtfwTypeRegistrator.RegisterType(TypeInfo(Boolean));
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа Integer
TtfwTypeRegistrator.RegisterType(TypeInfo(Integer));
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа String
TtfwTypeRegistrator.RegisterType(TypeInfo(AnsiString));
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа TvtComboTree
TtfwTypeRegistrator.RegisterType(TypeInfo(TvtComboTree));
{$IfEnd} //not NoScripts
end.
vtComboBoxWordsPack.rc:
vtComboBoxWordsPack RCDATA LOADONCALL MOVEABLE DISCARDABLE vtComboBoxWordsPack.rc.script
vtComboBoxWordsPack.rc.script:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Библиотека "ScriptEngine$VT" // Модуль: "vtComboBoxWordsPack.rc.script" // Скрипты в ресурсах (.rc.script) // Generated from UML model, root element: ScriptKeywordsPack::Class Shared Delphi::ScriptEngine$VT::vtComboBoxWords::vtComboBoxWordsPack // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //#UC START# *54EC8C7C011Eimpl* // Декораторы для слов работающих с комбо USES axiom:ComboBox axiom:ComboTree ; REDEFINITION : pop:ComboBox:DropDown OBJECT IN aCombo if ( aCombo Is class::TvtComboTree ) then ( aCombo pop:ComboTree:DropDown ) else ( aCombo inherited ) ; // pop:ComboBox:DropDown REDEFINITION : pop:ComboBox:GetItemIndex OBJECT IN aCombo if ( aCombo Is class::TvtComboTree ) then ( aCombo pop:ComboTree:GetItemIndex ) else ( aCombo inherited ) ; // pop:ComboBox:DropDown REDEFINITION : pop:ComboBox:IndexOf OBJECT IN aCombo if ( aCombo Is class::TvtComboTree ) then ( aCombo pop:ComboTree:IndexOf ) else ( aCombo inherited ) ; // pop:ComboBox:DropDown REDEFINITION : pop:ComboBox:SaveItems OBJECT IN aCombo if ( aCombo Is class::TvtComboTree ) then ( aCombo pop:ComboTree:SaveItems ) else ( aCombo inherited ) ; // pop:ComboBox:SelectItem REDEFINITION : pop:ComboBox:SelectItem OBJECT IN aCombo if ( aCombo Is class::TvtComboTree ) then ( aCombo pop:ComboTree:SelectItem ) else ( aCombo inherited ) ; // pop:ComboBox:SelectItem REDEFINITION : pop:ComboBox:SetItemIndex OBJECT IN aCombo if ( aCombo Is class::TvtComboTree ) then ( aCombo pop:ComboTree:SetItemIndex ) else ( aCombo inherited ) ; // pop:ComboBox:SetItemIndex //#UC END# *54EC8C7C011Eimpl*vtComboBoxWordsPack.res.cmd:
brcc32 vtComboBoxWordsPack.rc
vtComboTreeWordsPack.pas:
unit vtComboTreeWordsPack;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Библиотека "ScriptEngine$Everest"
// Модуль: "vtComboTreeWordsPack.pas"
// Родные Delphi интерфейсы (.pas)
// Generated from UML model, root element: ScriptKeywordsPack::Class Shared Delphi::ScriptEngine$Everest::EditorFromStackKeyWords::vtComboTreeWordsPack
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{$Include ..\ScriptEngine\seDefine.inc}
interface
{$If not defined(NoScripts)}
uses
l3TreeInterfaces,
tfwScriptingInterfaces,
tfwRegisterableWord,
vtComboTree
;
{$IfEnd} //not NoScripts
implementation
{$If not defined(NoScripts)}
uses
TypInfo,
SysUtils,
tfwTypeRegistrator
;
type
TkwPopComboTreeCurrentNode = {final scriptword} class(TtfwRegisterableWord)
{* Слово скрипта pop:ComboTree:CurrentNode
*Тип результата:* Il3SimpleNode
*Пример:*
[code]
INTERFACE VAR l_Il3SimpleNode
aComboTree pop:ComboTree:CurrentNode >>> l_Il3SimpleNode
[code] }
private
// private methods
function CurrentNode(const aCtx: TtfwContext;
aComboTree: TvtComboTree): Il3SimpleNode;
{* Реализация слова скрипта pop:ComboTree:CurrentNode }
protected
// realized methods
procedure DoDoIt(const aCtx: TtfwContext); override;
protected
// overridden protected methods
class function GetWordNameForRegister: AnsiString; override;
public
// overridden public methods
function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override;
end;//TkwPopComboTreeCurrentNode
// start class TkwPopComboTreeCurrentNode
function TkwPopComboTreeCurrentNode.CurrentNode(const aCtx: TtfwContext;
aComboTree: TvtComboTree): Il3SimpleNode;
//#UC START# *E52B39199FD5_9F9FF0616B3E_var*
//#UC END# *E52B39199FD5_9F9FF0616B3E_var*
begin
//#UC START# *E52B39199FD5_9F9FF0616B3E_impl*
Result := aComboTree.Tree.GetCurrentNode;
//#UC END# *E52B39199FD5_9F9FF0616B3E_impl*
end;//TkwPopComboTreeCurrentNode.CurrentNode
procedure TkwPopComboTreeCurrentNode.DoDoIt(const aCtx: TtfwContext);
{-}
var
l_aComboTree : TvtComboTree;
begin
try
l_aComboTree := TvtComboTree(aCtx.rEngine.PopObjAs(TvtComboTree));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра aComboTree: TvtComboTree : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
aCtx.rEngine.PushIntf((CurrentNode(aCtx, l_aComboTree)));
end;//TkwPopComboTreeCurrentNode.DoDoIt
class function TkwPopComboTreeCurrentNode.GetWordNameForRegister: AnsiString;
{-}
begin
Result := 'pop:ComboTree:CurrentNode';
end;//TkwPopComboTreeCurrentNode.GetWordNameForRegister
function TkwPopComboTreeCurrentNode.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo;
{-}
begin
Result := TypeInfo(Il3SimpleNode);
end;//TkwPopComboTreeCurrentNode.GetResultTypeInfo
{$IfEnd} //not NoScripts
initialization
{$If not defined(NoScripts)}
// Регистрация pop_ComboTree_CurrentNode
TkwPopComboTreeCurrentNode.RegisterInEngine;
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа TtfwContext
TtfwTypeRegistrator.RegisterType(@tfw_tiStruct);
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа TvtComboTree
TtfwTypeRegistrator.RegisterType(TypeInfo(TvtComboTree));
{$IfEnd} //not NoScripts
{$If not defined(NoScripts)}
// Регистрация типа Il3SimpleNode
TtfwTypeRegistrator.RegisterType(TypeInfo(Il3SimpleNode));
{$IfEnd} //not NoScripts
end.
ScriptKeywordsPack.tpi:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Модуль: "w:/MDProcess/DelphiSpecific/DelphiLang/Implementation/ScriptKeywordsPack.tpi"
// Генерация мета-шаблонов
// Generated from UML model, root element: <<MDAClass::Class>> MDProcess$ForDelphi::DelphiSpecific::DelphiLang::Implementation::ScriptKeywordsPack
//
// Набор слов скрипта
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
: ScriptKeywordsPack::Class
? Набор слов скрипта
> ScriptKeyword::Class
= UtilityPack::Class
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Параметры стереотипа
// Параметры визуализации
$ C 147,168,174
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Пользовательские свойства
p no_pop:tribool=undefined ?
p no class name:tribool=undefined ?
p needs script:tribool=undefined ? Нужна скриптовая обвязка
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Функции стереотипа
%f _st_space_key
SHD
%f _wiki_up_print
%S#[inherited][{"%S{no_pop}"!="%S{!no_pop}"}%f_up_prefix(%S) *no_pop* = *%S{no_pop}*
][{"%S{no class name}"!="%S{!no class name}"}%f_up_prefix(%S) *no class name* = *%S{no class name}*
][{"%S{needs script}"!="%S{!needs script}"}%f_up_prefix(%S) *needs script* = *%S{needs script}* - Нужна скриптовая обвязка
]
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Унаследованная реализация
// перекрытие базового стереотипа Delphi интерфейсы и реализация::MDAGenerator
%f _DoSpell
//#UC START# *4B2A19E3038Bfor4F2C15C90252*
// %S%f_set_implement_select_type(include)\
[{%S{needs script}=true}\
%S%f_add_class(%SU_ResNameGetter,SimpleClass,T%f_pas_UnitName(%S)ResNameGetter,Class_Inst)\
%{Class_Inst}%f_set_documentation(Регистрация скриптованой аксиоматики)\
%{Class_Inst}%f_set_abstraction_type(final)\
%{Class_Inst}%f_set_visibility_type(PrivateAccess)\
[{"%{TtfwAxiomaticsResNameGetter}N"=""}%f_find_element(TtfwAxiomaticsResNameGetter,TtfwAxiomaticsResNameGetter)]\
%f_addG(%{Class_Inst},%{TtfwAxiomaticsResNameGetter})\
%{Class_Inst}%f_set_up(need UC,true)\
%{Class_Inst}%f_set_uc_content(intf.pas,impl,\
\{$R %f_pas_UnitName(%S).res %f_pas_UnitName(%S).rc\}\
)\
%{Class_Inst}%f_add_operation(%{Class_Inst}U_Reg,ini,RegAxiom (),Reg_Instance)\
%{Reg_Instance}%f_set_documentation(Регистрация скриптованой аксиоматики)\
%{Reg_Instance}%f_set_abstraction_type(final)\
%{Reg_Instance}%f_set_visibility_type(PrivateAccess)\
%{Reg_Instance}%f_set_uc_content(intf.pas,,\
%f_pas_TypeName(%{Class_Inst}).Register;\
)\
[{"%{TtfwAxiomaticsResNameGetter.ResName}N"=""}%f_find_element(55B7A3AF0359,TtfwAxiomaticsResNameGetter.ResName)]\
%{TtfwAxiomaticsResNameGetter.ResName}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{TtfwAxiomaticsResNameGetter.ResName},%{Class_Inst})_var,\
{-}\
)\
%{TtfwAxiomaticsResNameGetter.ResName}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{TtfwAxiomaticsResNameGetter.ResName},%{Class_Inst})_impl,\
Result := '%f_pas_UnitName(%S)';\
)\
]\
%f_clear_list(PROPS)\
<{}{%CS=property|%CS=readonly}\
%f_add_to_list(PROPS,C)\
>\
%{PROPS}<{}{}{%C}\
%1%f_add_operation(%1U_%CU_get,keyword,[{%CS!=readonly}Get]%CN (): %C%TU,Op_Instance)\
%{Op_Instance}%f_set_up(NameForScript,%C{NameForScript})\
%f_TuneGS(%{Op_Instance},%C)\
%{Op_Instance}%f_set_up(is_setter,false)\
[{%CS!=readonly}\
%1%f_add_operation(%1U_%CU_set,keyword,Set%CN (aValue : %C%TU),Op_Instance)\
%f_TuneGS(%{Op_Instance},%C)\
%{Op_Instance}%f_set_up(is_setter,true)\
]\
>\
%f_clear_list(PROPS)\
%f_SpellFriends(%S)\
%f_clear_list(PARAMS)\
<{}{%t_isAcceptableForScripts(%G)=true}\
%f_SpellWordsForParent(%S,%G,"true")\
>\
<{}{%t_isAcceptableForScripts(%R)=true}\
%f_SpellWordsForParent(%S,%R,"false")\
>\
%f_clear_list(KEYS)\
%S<{}{%C#f_IsGlobalKeyword()=true}\
%f_add_to_list(KEYS,C)\
>\
%f_set_var(GEN,"")\
%{KEYS}<{}{}{%C}\
%f_SpellWordByOp(%1,%C)\
>\
%f_clear_list(KEYS)\
[{%f_is_empty(PARAMS)=false}\
[{"%{TtfwTypeRegistrator}N"=""}%f_find_element(TtfwTypeRegistrator,TtfwTypeRegistrator)]\
%f_addCDep(%S,%{TtfwTypeRegistrator})\
%{PARAMS}<{}{}{%C}\
%1%f_add_operation(%1U_%CU_RegType,ini,Reg_%CN (),Reg_Instance)\
%{Reg_Instance}%f_set_documentation(Регистрация типа %CN)\
%{Reg_Instance}%f_set_abstraction_type(final)\
%{Reg_Instance}%f_set_visibility_type(PrivateAccess)\
// %f_warning(%CN)\
%{Reg_Instance}%f_set_uc_content(intf.pas,,\
TtfwTypeRegistrator.RegisterType(%t_TypeInfo(%C));\
)\
>\
]\
%f_clear_list(PARAMS)\
%S%[inherited]
f _TuneGS
%S%f_set_documentation(%1D)\
%S%f_set_up(prop_stereo,%1S)\
%S%f_set_up(prop_name,%1N)\
%S%f_set_up(mapped,%1{mapped})\
%S%f_set_up(is immediate,%1{is immediate})\
%S%f_set_up(ifdef,%1{ifdef})\
%S%f_set_up(ifndef,%1{ifndef})
f _SpellWordsForParent
[{%2N=true}\
%f_addCDep(%S,%1,"injects")\
// - иньекция
// [{%t_simple_class(%1)=true&%S{noRegistrator}!=true}\
// %S%f_add_class(%SU_%1U_Reg,SimpleClass,%f_pas_TypeName(%1)RegistratorFor%f_N(%S),Reg_Inst)\
// %f_addG(%{Reg_Inst},%1)\
// %{Reg_Inst}%f_set_documentation(Регистратор для %f_pas_TypeName(%1))\
// %{Reg_Inst}%f_set_abstraction_type(abstract)\
// %{Reg_Inst}%f_set_visibility_type(PrivateAccess)\
// %{Reg_Inst}%f_set_up(register in scripts,true)\
// %{Reg_Inst}%f_set_up(is_friend,true)\
// %{Reg_Inst}%f_set_implement_select_type(include)\
// ]\
// - регистратор
]\
%f_clear_list(KEYS)\
%S<{}{%C#f_IsKeyword()=true}\
%f_add_to_list(KEYS,C)\
>\
%f_set_var(GEN,1)\
%{KEYS}<{}{}{%C}\
%f_SpellWordByOp(%1,%C)\
>\
%f_clear_list(KEYS)
f _AddParamToRegister
[{%SN!=void}\
// %f_warning(%SN)\
[{%f_exists_in_list(PARAMS,S)!=true}\
%f_add_to_list(PARAMS,S)\
]\
]
f _SpellWordByOp
%S%f_add_class(%SU_%{GEN}U_%1U_Word,ScriptKeyword,\
[{"%{GEN}N"!=""}\
[{%S{no_pop}!=true&%1#f_IsCreator()!=true}pop_]\
[{%S{no class name}!=true&%t_SelfName(%{GEN})!=SV}%t_SelfName(%{GEN})_]\
]\
%1N,\
Class_Inst)\
%{Class_Inst}%f_set_up(is immediate,%1{is immediate})\
%{Class_Inst}%f_set_up(ifdef,%1{ifdef})\
%{Class_Inst}%f_set_up(ifndef,%1{ifndef})\
[{%1#f_IsVarWorker()=true}\
[{%1#f_IsWordWorker()=true}{\
[{"%{TtfwVarWorker}N"=""}%f_find_element(TtfwVarWorker,TtfwVarWorker)]\
%f_addG(%{Class_Inst},%{TtfwVarWorker})\
}\
[{"%{TtfwWordWorkerEx}N"=""}%f_find_element(TtfwWordWorkerEx,TtfwWordWorkerEx)]\
%f_addG(%{Class_Inst},%{TtfwWordWorkerEx})\
]\
]\
[{"%1{NameForScript}"=""}{\
%{Class_Inst}%f_set_up(NameForScript,%1{NameForScript})\
}\
%{Class_Inst}%f_set_up(NameForScript,%f_str_replace(%{Class_Inst}N,_,:))\
]\
%{Class_Inst}%f_set_documentation(Слово скрипта %f_loc_GetNameForScript(%{Class_Inst})[\n\{panel\}%1D\{panel\}]
%f_set_var(RES,"")\
[{%1%TN!=void}%f_set_var(RES,1%T)]\
[{%1#f_IsCreator()=true&"%{GEN}N"!=""}%f_set_var(RES,{GEN})]\
[{"%{RES}N"!=""}*Тип результата:* %{RES}N\n]\
*Пример:*
\{code\}
%1<{}{%CS=out}{%C}[%t_EngineType(%C%T) ]VAR l_%CN\n>\
[{"%{RES}N"!=""}[%t_EngineType(%{RES}) ]VAR l_%{RES}N\n]\
%1<{}{%CS!=out}{%Cr}%CN >[{%1#f_IsCreator()!=true&"%{GEN}N"!=""}a%t_SelfName(%{GEN}) ]%f_loc_GetNameForScript(%{Class_Inst})\
[{%1#f_IsVarWorker()=true}\
[{%1#f_IsWordWorker()=true}{aVar}aWord]\
]\
%1<{}{%CS=out}{%C} \>\>\> l_%CN>\
[{"%{RES}N"!=""} \>\>\> l_%{RES}N]\
\n\
\{code\} \
)\
%{Class_Inst}%f_set_abstraction_type(final)\
%{Class_Inst}%f_set_visibility_type(PrivateAccess)\
[{"%{TtfwContext}N"=""}%f_find_element(TtfwContext,TtfwContext)]\
%{Class_Inst}%f_make_accessable(%{TtfwContext}U)\
%f_addCDep(%{Class_Inst},%{TtfwContext})\
[{%1{SupressNextImmediate}!=None&"%1{SupressNextImmediate}"!=""}\
[{"%{TtfwCompilingWord.SupressNextImmediate}N"=""}%f_find_element(4F3AB3B101FC,TtfwCompilingWord.SupressNextImmediate)]\
%{Class_Inst}%f_add_override(%{TtfwCompilingWord.SupressNextImmediate}U)\
%{TtfwCompilingWord.SupressNextImmediate}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{TtfwCompilingWord.SupressNextImmediate},%{Class_Inst})_var,\
{-}\
)\
%{TtfwCompilingWord.SupressNextImmediate}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{TtfwCompilingWord.SupressNextImmediate},%{Class_Inst})_impl,\
Result := tfw_sni%1{SupressNextImmediate};\
)\
]\
[{"%{TTypeInfo}N"=""}%f_find_element(4767748503B5,TTypeInfo)]\
%f_addCDep(%{Class_Inst},%{TTypeInfo})\
[{"%{TtfwWord.GetResultTypeInfo}N"=""}%f_find_element(551544E2001A,TtfwWord.GetResultTypeInfo)]\
%{Class_Inst}%f_add_override(%{TtfwWord.GetResultTypeInfo}U)\
%{TtfwWord.GetResultTypeInfo}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{TtfwWord.GetResultTypeInfo},%{Class_Inst})_var,\
{-}\
)\
%{TtfwWord.GetResultTypeInfo}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{TtfwWord.GetResultTypeInfo},%{Class_Inst})_impl,\
[{%1#f_IsCreator()=true&"%{GEN}N"!=""}{\
Result := %t_TypeInfo(%1%T);\
}\
Result := %t_TypeInfo(%{GEN});\
]\
)\
%f_set_var(Op_Instance,"")\
%f_set_var(NeedOp,"false")\
[{%1{mapped}=true}\
%f_set_var(NeedOp,"true")\
]\
[{"%{GEN}N"!=""}\
%f_set_var(NeedOp,"true")\
]\
[{%1#f_IsVarWorker()=true}\
%f_set_var(NeedOp,"true")\
]\
[{%1<{}{}{%CC}>!=0}\
%f_set_var(NeedOp,"true")\
]\
[{%1%TN!=void}\
%f_set_var(NeedOp,"true")\
]\
[{%{NeedOp}N=true}\
%{Class_Inst}%f_add_operation(%{Class_Inst}U_%1U_op,,\
%f_N(%1) (\
aCtx: %{TtfwContext}U\
[{%1#f_IsVarWorker()=true}\
[{"%{TtfwWord}N"=""}%f_find_element(TtfwWord,TtfwWord)]\
, [{%1#f_IsWordWorker()=true}{aVar}aWord]: %{TtfwWord}U \
]\
[{%1#f_IsCreator()!=true&"%{GEN}N"!=""}, \
a%t_SelfName(%{GEN}): %{GEN}U \
]\
%1<{}{}{%C},%CS %CN:%C%TU>)\
[{%1#f_IsCreator()=true&"%{GEN}N"!=""}{\
[{%1%TN!=void} : %1%TU]\
}\
: %{GEN}U\
]\
,Op_Instance)\
%{Op_Instance}%f_set_documentation(Реализация слова скрипта %f_loc_GetNameForScript(%{Class_Inst}))\
%{Op_Instance}%f_set_abstraction_type(final)\
%{Op_Instance}%f_set_visibility_type(PrivateAccess)\
%{Op_Instance}<{}{}{%C}%f_AddParamToRegister(%C%T)>\
%f_AddParamToRegister(%{Op_Instance}%T)\
]\
[{%1#f_IsVarWorker()=true}{\
[{"%{TtfwWord.DoDoIt}N"=""}%f_find_element(4DAEEDE10285,TtfwWord.DoDoIt)]\
%f_set_var(MyDo,{TtfwWord.DoDoIt})\
}\
[{"%{TtfwVarWorker.DoRun}N"=""}%f_find_element(5512949D0048,TtfwVarWorker.DoRun)]\
%f_set_var(MyDo,{TtfwVarWorker.DoRun})\
]\
[{"%{SysUtils}N"=""}%f_find_element(47877EB202FB,SysUtils)]\
%{Class_Inst}%f_make_accessable(%{SysUtils}U)\
%f_addCDep(%{Class_Inst},%{SysUtils})\
%{Class_Inst}%f_add_override(%{MyDo}U)\
[{%{NeedOp}N=true}{\
}\
%{MyDo}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{MyDo},%{Class_Inst})_var,\
{-}\
[{%{Op_Instance}<{}{}{+%CC}>!=0}\
\n\
var\
%{Op_Instance}<{}{}{+%C}\n l_%CN : %f_pas_TypeName(%C%T);>\
]\
)\
%{MyDo}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{MyDo},%{Class_Inst})_impl,\
%{Op_Instance}<{}{}{+%C}\
[{%CS!=out}\
try
l_%CN := \
%t_CastSig(%C%T)\
(aCtx.rEngine.%t_PopSig(%C%T));
except
on E: Exception do
begin
RunnerError('Ошибка при получении параметра %CN: %f_pas_TypeName(%C%T) : ' + E.Message, aCtx);
Exit;
end;//on E: Exception
end;//try..except
]\
>\
\
[{%{Op_Instance}%TN!=void}\
aCtx.rEngine.%t_PushSig(%{Op_Instance}%T)\
(%t_UnCastSig(%{Op_Instance}%T)(\
]\
%f_to_borland(%{Op_Instance}N)(aCtx%{Op_Instance}<{}{}{+%C}, l_%CN>)\
[{%{Op_Instance}%TN!=void}\
))\
]\
;\
%{Op_Instance}<{}{}{%Cr}\
// %f_warning(%CS %CN)\
[{%CS=out}\
\n aCtx.rEngine.%t_PushSig(%C%T)(l_%CN);\
]\
>\
)\
[{%1{mapped}=true}\
%{Op_Instance}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{Op_Instance},%{Class_Inst})_var,\
{-}\
)\
%{Op_Instance}%f_set_uc_content(intf.pas,_%f_pas_MethodOwnerID(%{Op_Instance},%{Class_Inst})_impl,\
[{%{Op_Instance}%TN!=void}Result := ]\
a%t_SelfName(%{GEN}).\
[{}{%{Op_Instance}N}%1{prop_name}]\
[{%1{is_setter}=true}{\
[{%1<{}{}{C%C}>!=0}\
(%1<{, }{}%CN>)\
]\
}\
:= aValue\
]\
;\
)\
]\
]
t _TypeInfo
@ %SU
c {}
r {%SN=void}: {@tfw_tiVoid}
r {%f_pas_TypeName(%S)=Tl3PCharLen}: {@tfw_tiWString}
r {%t_isString(%S)=true}: {@tfw_tiString}
r {%t_isStruct(%S)=true}: {@tfw_tiStruct}
r {%t_isClassRef(%S)=true}: {@tfw_tiClassRef}
r {""=""}: {TypeInfo(%f_pas_TypeName(%S))}
t _SelfNamePrim
@ %SU
c {}
r {%t_interface(%S)=true}: {%f_cut_prefix(%f_pas_TypeName(%S),I)}
r {%S#f_IsStaticObject()=true}: {%f_cut_prefix(%f_pas_TypeName(%S),T)}
r {%t_simple_class(%S)=true}: {%f_cut_prefix(%f_pas_TypeName(%S),T)}
r {""=""}: {%f_pas_TypeName(%S)}
t _SelfNameEx
@ %SU
c {}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),9)=nevCustom}: {%f_cut_prefix(%t_SelfNamePrim(%S),nevCustom)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),8)=evCustom}: {%f_cut_prefix(%t_SelfNamePrim(%S),evCustom)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),3)=nsc}: {%f_cut_prefix(%t_SelfNamePrim(%S),nsc)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),3)=tfw}: {%f_cut_prefix(%t_SelfNamePrim(%S),tfw)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),2)=kw}: {%f_cut_prefix(%t_SelfNamePrim(%S),kw)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),3)=nev}: {%f_cut_prefix(%t_SelfNamePrim(%S),nev)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),2)=vg}: {%f_cut_prefix(%t_SelfNamePrim(%S),vg)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),2)=vt}: {%f_cut_prefix(%t_SelfNamePrim(%S),vt)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),2)=k2}: {%f_cut_prefix(%t_SelfNamePrim(%S),k2)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),2)=ns}: {%f_cut_prefix(%t_SelfNamePrim(%S),ns)}
r {%f_substr_from_begin(%t_SelfNamePrim(%S),2)=l3}: {%f_cut_prefix(%t_SelfNamePrim(%S),l3)}
r {""=""}: {%t_SelfNamePrim(%S)}
t _SelfName
@ %SU
c {}
r {%t_SelfNameEx(%S)=StackValue}: {SV}
r {%t_SelfNameEx(%S)=FontInfo}: {Font}
r {%t_SelfNameEx(%S)=ValueList}: {Array}
r {%t_SelfNameEx(%S)=FileName}: {File}
r {%t_SelfNameEx(%S)=SimpleTree}: {Tree}
r {%t_SelfNameEx(%S)=SimpleNode}: {Node}
r {%t_SelfNameEx(%S)=vcmEntityForm}: {Form}
r {%t_SelfNameEx(%S)=WinControl}: {Control}
r {%t_SelfNameEx(%S)=ElCustomPageControl}: {PageControl}
r {%t_SelfNameEx(%S)=ShockwaveFlashEx}: {Flash}
r {%t_SelfNameEx(%S)=TasksPanelView}: {TaskPanel}
r {%t_SelfNameEx(%S)=CustomToolbarButton97}: {TB97Button}
r {%t_SelfNameEx(%S)=ToolbarButton97}: {TB97Button}
r {%t_SelfNameEx(%S)=CustomOutliner}: {Tree}
r {%t_SelfNameEx(%S)=Outliner}: {Tree}
r {%t_SelfNameEx(%S)=CString}: {String}
r {%f_substr_from_begin(%t_SelfNameEx(%S),9)=Customize}: {%t_SelfNameEx(%S)}
r {""=""}: {%f_cut_prefix(%t_SelfNameEx(%S),Custom)}
t _isEnum
@ %SU
c {}
r {%SS=Enum}: {true}
r {%SS=Typedef}: {%t_isEnum(%G)}
r {""=""}: {false}
t _isClassRef
@ %SU
c {}
r {%f_pas_TypeName(%S)=TClass}: {true}
r {%SS=Typedef&%S{isClassRef}=true}: {true}
r {%SS=Typedef}: {%t_isClassRef(%G)}
r {""=""}: {false}
t _isString
@ %SU
c {}
r {%f_pas_TypeName(%S)=Tl3WString|%f_pas_TypeName(%S)=Tl3PCharLenPrim|%f_pas_TypeName(%S)=Tl3PCharLen}: {true}
r {%f_pas_TypeName(%S)=Il3CString}: {true}
r {%SS=Typedef}: {%t_isString(%G)}
r {""=""}: {false}
t _isAcceptableForScripts
@ %SU
c {}
r {%f_pas_TypeName(%S)=TClass}: {true}
r {%f_pas_TypeName(%S)=TtfwStackValue}: {true}
r {%f_pas_TypeName(%S)=ItfwValueList}: {true}
r {%f_pas_TypeName(%S)=ItfwFile}: {true}
r {%SS=Typedef&%S{isClassRef}=true}: {true}
r {%f_pas_TypeName(%S)=Tl3WString|%f_pas_TypeName(%S)=Tl3PCharLenPrim|%f_pas_TypeName(%S)=Tl3PCharLen}: {true}
r {%f_pas_TypeName(%S)=Il3CString}: {true}
r {%t_simple_class(%S)=true}: {true}
r {%t_interface(%S)=true}: {true}
r {%f_pas_TypeName(%S)=String}: {true}
r {%f_pas_TypeName(%S)=Char|%f_pas_TypeName(%S)=AnsiChar}: {true}
r {%f_pas_TypeName(%S)=TPoint}: {true}
r {%f_pas_TypeName(%S)=WideString}: {true}
r {%f_pas_TypeName(%S)=AnsiString}: {true}
r {%f_pas_TypeName(%S)=Integer}: {true}
r {%f_pas_TypeName(%S)=TColor}: {true}
r {%f_pas_TypeName(%S)=Cardinal}: {true}
r {%t_isEnum(%S)=true}: {true}
r {%f_pas_TypeName(%S)=THandle}: {true}
r {%f_pas_TypeName(%S)=Boolean}: {true}
r {%SS=Typedef}: {%t_isAcceptableForScripts(%G)}
r {""=""}: {false}
t _CastSig
@ %SU
c {}
r {%f_pas_TypeName(%S)=TClass}: {}
r {%f_pas_TypeName(%S)=TtfwStackValue}: {}
r {%f_pas_TypeName(%S)=ItfwValueList}: {}
r {%f_pas_TypeName(%S)=ItfwFile}: {}
r {%SS=Typedef&%S{isClassRef}=true}: {%f_pas_TypeName(%S)}
r {%f_pas_TypeName(%S)=Tl3PCharLen}: {%f_pas_TypeName(%S)}
r {%f_pas_TypeName(%S)=Tl3WString|%f_pas_TypeName(%S)=Tl3PCharLenPrim}: {}
r {%f_pas_TypeName(%S)=Il3CString}: {}
r {%t_simple_class(%S)=true}: {%f_pas_TypeName(%S)}
r {%t_interface(%S)=true}: {%f_pas_TypeName(%S)}
r {%f_pas_TypeName(%S)=String}: {}
r {%f_pas_TypeName(%S)=Char|%f_pas_TypeName(%S)=AnsiChar}: {}
r {%f_pas_TypeName(%S)=TPoint}: {}
r {%f_pas_TypeName(%S)=WideString}: {}
r {%f_pas_TypeName(%S)=AnsiString}: {}
r {%f_pas_TypeName(%S)=Integer}: {}
r {%f_pas_TypeName(%S)=TColor}: {%f_pas_TypeName(%S)}
r {%f_pas_TypeName(%S)=Cardinal}: {%f_pas_TypeName(%S)}
r {%t_isEnum(%S)=true}: {%f_pas_TypeName(%S)}
r {%f_pas_TypeName(%S)=THandle}: {%f_pas_TypeName(%S)}
r {%f_pas_TypeName(%S)=Boolean}: {}
r {%SS=Typedef}: {%f_pas_TypeName(%S)}
r {""=""}: {"Не знаем как приводить значение типа %f_pas_TypeName(%S)"}
t _EngineType
@ %SU
c {}
r {%SN=void}: {VOID}
r {%f_pas_TypeName(%S)=TClass}: {CLASS}
r {%f_pas_TypeName(%S)=TtfwStackValue}: {}
r {%f_pas_TypeName(%S)=ItfwValueList}: {ARRAY}
r {%f_pas_TypeName(%S)=ItfwFile}: {FILE}
r {%SS=Typedef&%S{isClassRef}=true}: {CLASS}
r {%f_pas_TypeName(%S)=Tl3PCharLen}: {W-STRING}
r {%f_pas_TypeName(%S)=Tl3WString|%f_pas_TypeName(%S)=Tl3PCharLenPrim}: {STRING}
r {%f_pas_TypeName(%S)=Il3CString}: {STRING}
r {%t_simple_class(%S)=true}: {OBJECT}
r {%t_interface(%S)=true}: {INTERFACE}
r {%f_pas_TypeName(%S)=String}: {STRING}
r {%f_pas_TypeName(%S)=Char|%f_pas_TypeName(%S)=AnsiChar}: {CHAR}
r {%f_pas_TypeName(%S)=TPoint}: {}
r {%f_pas_TypeName(%S)=WideString}: {STRING}
r {%f_pas_TypeName(%S)=AnsiString}: {STRING}
r {%f_pas_TypeName(%S)=Integer}: {INTEGER}
r {%f_pas_TypeName(%S)=TColor}: {INTEGER}
r {%f_pas_TypeName(%S)=Cardinal}: {CARDINAL}
r {%t_isEnum(%S)=true}: {INTEGER}
r {%f_pas_TypeName(%S)=THandle}: {CARDINAL}
r {%f_pas_TypeName(%S)=Boolean}: {BOOLEAN}
r {%SS=Typedef}: {%t_EngineType(%G)}
r {""=""}: {}
t _UnCastSig
@ %SU
c {}
r {%SN=void}: {}
r {%f_pas_TypeName(%S)=TClass}: {}
r {%f_pas_TypeName(%S)=TtfwStackValue}: {}
r {%f_pas_TypeName(%S)=ItfwValueList}: {}
r {%f_pas_TypeName(%S)=ItfwFile}: {}
r {%SS=Typedef&%S{isClassRef}=true}: {}
r {%f_pas_TypeName(%S)=Tl3WString|%f_pas_TypeName(%S)=Tl3PCharLenPrim|%f_pas_TypeName(%S)=Tl3PCharLen}: {}
r {%f_pas_TypeName(%S)=Il3CString}: {}
r {%t_simple_class(%S)=true}: {}
r {%t_interface(%S)=true}: {}
r {%f_pas_TypeName(%S)=String}: {}
r {%f_pas_TypeName(%S)=Char|%f_pas_TypeName(%S)=AnsiChar}: {}
r {%f_pas_TypeName(%S)=TPoint}: {}
r {%f_pas_TypeName(%S)=WideString}: {}
r {%f_pas_TypeName(%S)=AnsiString}: {}
r {%f_pas_TypeName(%S)=Integer}: {}
r {%f_pas_TypeName(%S)=TColor}: {Integer}
r {%f_pas_TypeName(%S)=Cardinal}: {Integer}
r {%t_isEnum(%S)=true}: {Ord}
r {%f_pas_TypeName(%S)=THandle}: {Integer}
r {%f_pas_TypeName(%S)=Boolean}: {}
r {%SS=Typedef}: {%t_UnCastSig(%G)}
r {""=""}: {"Не знаем как приводить значение типа %f_pas_TypeName(%S)"}
t _PopSig
@ %SU
c {}
r {%f_pas_TypeName(%S)=TClass}: {PopClass}
r {%f_pas_TypeName(%S)=TtfwStackValue}: {Pop}
r {%f_pas_TypeName(%S)=ItfwValueList}: {PopList}
r {%f_pas_TypeName(%S)=ItfwFile}: {PopFile}
r {%SS=Typedef&%S{isClassRef}=true}: {PopClassAs(%f_pas_TypeName(%S))}
r {%f_pas_TypeName(%S)=Tl3WString|%f_pas_TypeName(%S)=Tl3PCharLenPrim|%f_pas_TypeName(%S)=Tl3PCharLen}: {PopWStr}
r {%f_pas_TypeName(%S)=Il3CString}: {PopString}
r {%t_simple_class(%S)=true}: {PopObjAs(%f_pas_TypeName(%S))}
r {%t_interface(%S)=true}: {PopIntf(%f_pas_TypeName(%S))}
r {%f_pas_TypeName(%S)=String}: {PopDelphiString}
r {%f_pas_TypeName(%S)=Char|%f_pas_TypeName(%S)=AnsiChar}: {PopChar}
r {%f_pas_TypeName(%S)=TPoint}: {PopPoint}
r {%f_pas_TypeName(%S)=WideString}: {PopWideString}
r {%f_pas_TypeName(%S)=AnsiString}: {PopDelphiString}
r {%f_pas_TypeName(%S)=Integer}: {PopInt}
r {%f_pas_TypeName(%S)=TColor}: {PopInt}
r {%f_pas_TypeName(%S)=Cardinal}: {PopInt}
r {%t_isEnum(%S)=true}: {PopInt}
r {%f_pas_TypeName(%S)=THandle}: {PopInt}
r {%f_pas_TypeName(%S)=Boolean}: {PopBool}
r {%SS=Typedef}: {%t_PopSig(%G)}
r {""=""}: {"Не знаем как снять со стека : %f_pas_TypeName(%S)"}
t _PushSig
@ %SU
c {}
r {%f_pas_TypeName(%S)=TClass}: {PushClass}
r {%f_pas_TypeName(%S)=TtfwStackValue}: {Push}
r {%f_pas_TypeName(%S)=ItfwValueList}: {PushList}
r {%f_pas_TypeName(%S)=ItfwFile}: {PushFile}
r {%SS=Typedef&%S{isClassRef}=true}: {PushClass}
r {%f_pas_TypeName(%S)=Tl3PCharLen}: {PushWStr}
r {%f_pas_TypeName(%S)=Tl3WString|%f_pas_TypeName(%S)=Tl3PCharLenPrim}: {PushString}
r {%f_pas_TypeName(%S)=Il3CString}: {PushString}
r {%t_simple_class(%S)=true}: {PushObj}
r {%t_interface(%S)=true}: {PushIntf}
r {%f_pas_TypeName(%S)=String}: {PushString}
r {%f_pas_TypeName(%S)=Char|%f_pas_TypeName(%S)=AnsiChar}: {PushChar}
r {%f_pas_TypeName(%S)=TPoint}: {PushPoint}
r {%f_pas_TypeName(%S)=WideString}: {PushWideString}
r {%f_pas_TypeName(%S)=AnsiString}: {PushString}
r {%f_pas_TypeName(%S)=Integer}: {PushInt}
r {%f_pas_TypeName(%S)=TColor}: {PushInt}
r {%f_pas_TypeName(%S)=Cardinal}: {PushInt}
r {%t_isEnum(%S)=true}: {PushInt}
r {%f_pas_TypeName(%S)=THandle}: {PushInt}
r {%f_pas_TypeName(%S)=Boolean}: {PushBool}
r {%SS=Typedef}: {%t_PushSig(%G)}
r {""=""}: {"Не знаем как положить на стек : %f_pas_TypeName(%S)"}
//#UC END# *4B2A19E3038Bfor4F2C15C90252*
// реализация абстрактного стереотипа Delphi интерфейсы и реализация::MDAGenerator
// Генератор файлов форм (.dfm)
+ dfm
R
//#UC START# *49F5795900ECfor4F2C15C90252*
//#UC END# *49F5795900ECfor4F2C15C90252*
// реализация абстрактного стереотипа Delphi интерфейсы и реализация::MDAGenerator
// Вторая интерфейсная секция стереотипа. Например реализация свойств класса.
+ intf2.pas
R
//#UC START# *477398E501C0for4F2C15C90252*
//#UC END# *477398E501C0for4F2C15C90252*
// реализация абстрактного стереотипа Delphi интерфейсы и реализация::MDAGenerator
// 3-я секция интерфейса. Например поле для свойства.
+ intf3.pas
R
//#UC START# *4774D2A20372for4F2C15C90252*
//#UC END# *4774D2A20372for4F2C15C90252*
// реализация абстрактного стереотипа Delphi интерфейсы и реализация::MDAGenerator
// Ресурсы (.rc)
+ rc.pas
R
//#UC START# *55B8D28B0157for4F2C15C90252*
O [{%S{needs script}=true}%f_pas_UnitName(%S).rc]
[{"%SO"!=""}\
%f_pas_UnitName(%S) RCDATA LOADONCALL MOVEABLE DISCARDABLE %f_pas_UnitName(%S).rc.script\
%f_end_new_file(%S)\
]
//#UC END# *55B8D28B0157for4F2C15C90252*
// реализация абстрактного стереотипа Delphi интерфейсы и реализация::MDAGenerator
// Скрипты в ресурсах (.rc.script)
+ rc.script.pas
R
//#UC START# *55B8D2F80145for4F2C15C90252*
O [{%S{needs script}=true}%f_pas_UnitName(%S).rc.script]
[{"%SO"!=""}\
%f_header(%S)
%U[{impl}\n]\n
%f_end_new_file(%S)\
]
//#UC END# *55B8D2F80145for4F2C15C90252*
// реализация абстрактного стереотипа Delphi интерфейсы и реализация::MDAGenerator
// Компилятор ресурса (.res.cmd)
+ res.cmd.pas
R
//#UC START# *55B8DD9C0301for4F2C15C90252*
O [{%S{needs script}=true}%f_pas_UnitName(%S).res.cmd]
[{"%SO"!=""}\
brcc32 %f_pas_UnitName(%S).rc\
%f_end_new_file(%S)\
]
//#UC END# *55B8DD9C0301for4F2C15C90252*
// реализация абстрактного стереотипа Delphi интерфейсы и реализация::MDAGenerator
// Скрипты TC (.sd)
+ sd
R
//#UC START# *4DE79AFC0030for4F2C15C90252*
//#UC END# *4DE79AFC0030for4F2C15C90252*
// реализация абстрактного стереотипа Java::MDAGenerator
// генератор реализации фабрик интерфейсов на java (.java)
+ fctr.java
//#UC START# *470321C1038Afor4F2C15C90252*
//#UC END# *470321C1038Afor4F2C15C90252*
// реализация абстрактного стереотипа Документация::MDAGenerator
// Хак для [$281531116]
+ link_to_requests_hack
//#UC START# *4E65F581015Afor4F2C15C90252*
//#UC END# *4E65F581015Afor4F2C15C90252*
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Вложенные стереотипы
: ScriptKeywordsPack::Class::injects::ClassDependency
? Внедрение зависимости
= Delphi интерфейсы и реализация::MDAGenerator
// Генераторы
// генератор реализации фабрик интерфейсов на java (.java)
+ fctr.java
//#UC START# *470321C1038Afor54D4A61F00BA*
//#UC END# *470321C1038Afor54D4A61F00BA*
// Вторая интерфейсная секция стереотипа. Например реализация свойств класса.
+ intf2.pas
R
//#UC START# *477398E501C0for54D4A61F00BA*
//#UC END# *477398E501C0for54D4A61F00BA*
// 3-я секция интерфейса. Например поле для свойства.
+ intf3.pas
R
//#UC START# *4774D2A20372for54D4A61F00BA*
//#UC END# *4774D2A20372for54D4A61F00BA*
// Генератор файлов форм (.dfm)
+ dfm
R
//#UC START# *49F5795900ECfor54D4A61F00BA*
//#UC END# *49F5795900ECfor54D4A61F00BA*
// Скрипты TC (.sd)
+ sd
R
//#UC START# *4DE79AFC0030for54D4A61F00BA*
//#UC END# *4DE79AFC0030for54D4A61F00BA*
// Хак для [$281531116]
+ link_to_requests_hack
//#UC START# *4E65F581015Afor54D4A61F00BA*
//#UC END# *4E65F581015Afor54D4A61F00BA*
// Ресурсы (.rc)
+ rc.pas
R
//#UC START# *55B8D28B0157for54D4A61F00BA*
//#UC END# *55B8D28B0157for54D4A61F00BA*
// Скрипты в ресурсах (.rc.script)
+ rc.script.pas
R
//#UC START# *55B8D2F80145for54D4A61F00BA*
//#UC END# *55B8D2F80145for54D4A61F00BA*
// Компилятор ресурса (.res.cmd)
+ res.cmd.pas
R
//#UC START# *55B8DD9C0301for54D4A61F00BA*
//#UC END# *55B8DD9C0301for54D4A61F00BA*
// Генерация модели в MDKnow
+ wiki
//#UC START# *46E6D4BB0339for54D4A61F00BA*
//#UC END# *46E6D4BB0339for54D4A61F00BA*
// Родные Delphi интерфейсы (.pas)
+ intf.pas
R
//#UC START# *470F1571031Cfor54D4A61F00BA*
//#UC END# *470F1571031Cfor54D4A61F00BA*
// Реализация на Delphi(.pas)
+ impl.pas
R
//#UC START# *470F15B800CBfor54D4A61F00BA*
//#UC END# *470F15B800CBfor54D4A61F00BA*
// Функции стереотипа
%f _st_space_key
SHD
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Унаследованная реализация
// реализация абстрактного стереотипа Документация::MDAGenerator
// проверка ограничений накладываемых на элемент
%t _constraint
//#UC START# *4704C0E30186for54D4A61F00BA*
c {}
r {""=""}: {}
//#UC END# *4704C0E30186for54D4A61F00BA*
// реализация абстрактного стереотипа Документация::MDAGenerator
// выводит описание элемента (операция, атрибут) в wiki
%f _wiki_child_kind
//#UC START# *4705CBD6003Efor54D4A61F00BA*
//#UC END# *4705CBD6003Efor54D4A61F00BA*
// реализация абстрактного стереотипа Документация::MDAGenerator
// вывод описание авто-генерируемых методов в wiki
%f _wiki_up_add_gen
//#UC START# *470484D50138for54D4A61F00BA*
//#UC END# *470484D50138for54D4A61F00BA*
: ScriptKeywordsPack::Class::keyword::Operation
? Слово скрипта
= UtilityPack::Class::Operation
// Параметры стереотипа
v -
/ - типы видимости
a f
/ - тип абстракции
T
/ - может не иметь "цели" (типа/результата)
// Пользовательские свойства
p NameForScript:s ?
p is immediate:tribool=undefined ?
p mapped:tribool=undefined ?
// Генераторы
// Генерация модели в MDKnow
+ wiki
//#UC START# *46E6D4BB0339for54F734BC0087*
//#UC END# *46E6D4BB0339for54F734BC0087*
// генератор реализации фабрик интерфейсов на java (.java)
+ fctr.java
//#UC START# *470321C1038Afor54F734BC0087*
//#UC END# *470321C1038Afor54F734BC0087*
// Вторая интерфейсная секция стереотипа. Например реализация свойств класса.
+ intf2.pas
R
//#UC START# *477398E501C0for54F734BC0087*
//#UC END# *477398E501C0for54F734BC0087*
// 3-я секция интерфейса. Например поле для свойства.
+ intf3.pas
R
//#UC START# *4774D2A20372for54F734BC0087*
//#UC END# *4774D2A20372for54F734BC0087*
// Генератор файлов форм (.dfm)
+ dfm
R
//#UC START# *49F5795900ECfor54F734BC0087*
//#UC END# *49F5795900ECfor54F734BC0087*
// Скрипты TC (.sd)
+ sd
R
//#UC START# *4DE79AFC0030for54F734BC0087*
//#UC END# *4DE79AFC0030for54F734BC0087*
// Хак для [$281531116]
+ link_to_requests_hack
//#UC START# *4E65F581015Afor54F734BC0087*
//#UC END# *4E65F581015Afor54F734BC0087*
// Ресурсы (.rc)
+ rc.pas
R
//#UC START# *55B8D28B0157for54F734BC0087*
//#UC END# *55B8D28B0157for54F734BC0087*
// Скрипты в ресурсах (.rc.script)
+ rc.script.pas
R
//#UC START# *55B8D2F80145for54F734BC0087*
//#UC END# *55B8D2F80145for54F734BC0087*
// Компилятор ресурса (.res.cmd)
+ res.cmd.pas
R
//#UC START# *55B8DD9C0301for54F734BC0087*
//#UC END# *55B8DD9C0301for54F734BC0087*
// Родные Delphi интерфейсы (.pas)
+ intf.pas
R
//#UC START# *470F1571031Cfor54F734BC0087*
//#UC END# *470F1571031Cfor54F734BC0087*
// Реализация на Delphi(.pas)
+ impl.pas
R
//#UC START# *470F15B800CBfor54F734BC0087*
//#UC END# *470F15B800CBfor54F734BC0087*
// Функции стереотипа
%f _st_space_key
SHD
%f _wiki_up_print
%S#[inherited][{"%S{mapped}"!="%S{!mapped}"}%f_up_prefix(%S) *mapped* = *%S{mapped}*
][{"%S{NameForScript}"!="%S{!NameForScript}"}%f_up_prefix(%S) *NameForScript* = *%S{NameForScript}*
][{"%S{is immediate}"!="%S{!is immediate}"}%f_up_prefix(%S) *is immediate* = *%S{is immediate}*
]
%f _IsKeyword
// возвращаемый результат: boolean
//#UC START# *5510356E00AEfor54F734BC0087*
true
//#UC END# *5510356E00AEfor54F734BC0087*
%f _NoForward
// возвращаемый результат: boolean
//#UC START# *55115A470301for54F734BC0087*
true
//#UC END# *55115A470301for54F734BC0087*
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Унаследованная реализация
// реализация абстрактного стереотипа Документация::MDAGenerator
// вывод описание авто-генерируемых методов в wiki
%f _wiki_up_add_gen
//#UC START# *470484D50138for54F734BC0087*
//#UC END# *470484D50138for54F734BC0087*
: ScriptKeywordsPack::Class::property::Attribute
= UtilityPack::Class::Attribute
// Параметры стереотипа
v -
/ - типы видимости
a f
/ - тип абстракции
// Пользовательские свойства
p NameForScript:s ?
p mapped:tribool=undefined ?
// Генераторы
// Генерация модели в MDKnow
+ wiki
//#UC START# *46E6D4BB0339for54F861670034*
//#UC END# *46E6D4BB0339for54F861670034*
// генератор inline файлов реализации C++ (.i.h)
+ i.h
//#UC START# *47022CCF00EAfor54F861670034*
//#UC END# *47022CCF00EAfor54F861670034*
// генератор реализации фабрик интерфейсов на java (.java)
+ fctr.java
//#UC START# *470321C1038Afor54F861670034*
//#UC END# *470321C1038Afor54F861670034*
// Вторая интерфейсная секция стереотипа. Например реализация свойств класса.
+ intf2.pas
R
//#UC START# *477398E501C0for54F861670034*
//#UC END# *477398E501C0for54F861670034*
// 3-я секция интерфейса. Например поле для свойства.
+ intf3.pas
R
//#UC START# *4774D2A20372for54F861670034*
//#UC END# *4774D2A20372for54F861670034*
// Генератор файлов форм (.dfm)
+ dfm
R
//#UC START# *49F5795900ECfor54F861670034*
//#UC END# *49F5795900ECfor54F861670034*
// Скрипты TC (.sd)
+ sd
R
//#UC START# *4DE79AFC0030for54F861670034*
//#UC END# *4DE79AFC0030for54F861670034*
// Хак для [$281531116]
+ link_to_requests_hack
//#UC START# *4E65F581015Afor54F861670034*
//#UC END# *4E65F581015Afor54F861670034*
// Ресурсы (.rc)
+ rc.pas
R
//#UC START# *55B8D28B0157for54F861670034*
//#UC END# *55B8D28B0157for54F861670034*
// Скрипты в ресурсах (.rc.script)
+ rc.script.pas
R
//#UC START# *55B8D2F80145for54F861670034*
//#UC END# *55B8D2F80145for54F861670034*
// Компилятор ресурса (.res.cmd)
+ res.cmd.pas
R
//#UC START# *55B8DD9C0301for54F861670034*
//#UC END# *55B8DD9C0301for54F861670034*
// Родные Delphi интерфейсы (.pas)
+ intf.pas
R
//#UC START# *470F1571031Cfor54F861670034*
//#UC END# *470F1571031Cfor54F861670034*
// Реализация на Delphi(.pas)
+ impl.pas
R
//#UC START# *470F15B800CBfor54F861670034*
//#UC END# *470F15B800CBfor54F861670034*
// Функции стереотипа
%f _st_space_key
SHD
%f _wiki_up_print
%S#[inherited][{"%S{mapped}"!="%S{!mapped}"}%f_up_prefix(%S) *mapped* = *%S{mapped}*
][{"%S{NameForScript}"!="%S{!NameForScript}"}%f_up_prefix(%S) *NameForScript* = *%S{NameForScript}*
]
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Унаследованная реализация
// реализация абстрактного стереотипа Документация::MDAGenerator
// проверка ограничений накладываемых на элемент
%t _constraint
//#UC START# *4704C0E30186for54F861670034*
c {}
r {""=""}: {}
//#UC END# *4704C0E30186for54F861670034*
// реализация абстрактного стереотипа Документация::MDAGenerator
// вывод описание авто-генерируемых методов в wiki
%f _wiki_up_add_gen
//#UC START# *470484D50138for54F861670034*
//#UC END# *470484D50138for54F861670034*
: ScriptKeywordsPack::Class::readonly::Attribute
= ScriptKeywordsPack::Class::property::Attribute
// Функции стереотипа
%f _st_space_key
SHD
: ScriptKeywordsPack::Class::friend::ClassDependency
= ClassBase::Class::friend::ClassDependency
// Генераторы
// Генерация модели в MDKnow
+ wiki
//#UC START# *46E6D4BB0339for54FECA940175*
//#UC END# *46E6D4BB0339for54FECA940175*
// генератор заголовочных файлов C++ (.h)
+ h
//#UC START# *47022C88029Ffor54FECA940175*
//#UC END# *47022C88029Ffor54FECA940175*
// генератор файлов реализации C++ (.cpp)
+ cpp
//#UC START# *47022CB8034Bfor54FECA940175*
//#UC END# *47022CB8034Bfor54FECA940175*
// генератор inline файлов реализации C++ (.i.h)
+ i.h
//#UC START# *47022CCF00EAfor54FECA940175*
//#UC END# *47022CCF00EAfor54FECA940175*
// генератор классов, интерфейсов на java (.java)
+ java
//#UC START# *470321950119for54FECA940175*
//#UC END# *470321950119for54FECA940175*
// генератор реализации фабрик интерфейсов на java (.java)
+ fctr.java
//#UC START# *470321C1038Afor54FECA940175*
//#UC END# *470321C1038Afor54FECA940175*
// Родные Delphi интерфейсы (.pas)
+ intf.pas
R
//#UC START# *470F1571031Cfor54FECA940175*
//#UC END# *470F1571031Cfor54FECA940175*
// Реализация на Delphi(.pas)
+ impl.pas
R
//#UC START# *470F15B800CBfor54FECA940175*
//#UC END# *470F15B800CBfor54FECA940175*
// Вторая интерфейсная секция стереотипа. Например реализация свойств класса.
+ intf2.pas
R
//#UC START# *477398E501C0for54FECA940175*
//#UC END# *477398E501C0for54FECA940175*
// 3-я секция интерфейса. Например поле для свойства.
+ intf3.pas
R
//#UC START# *4774D2A20372for54FECA940175*
//#UC END# *4774D2A20372for54FECA940175*
// Генератор файлов форм (.dfm)
+ dfm
R
//#UC START# *49F5795900ECfor54FECA940175*
//#UC END# *49F5795900ECfor54FECA940175*
// Скрипты TC (.sd)
+ sd
R
//#UC START# *4DE79AFC0030for54FECA940175*
//#UC END# *4DE79AFC0030for54FECA940175*
// Хак для [$281531116]
+ link_to_requests_hack
//#UC START# *4E65F581015Afor54FECA940175*
//#UC END# *4E65F581015Afor54FECA940175*
// Ресурсы (.rc)
+ rc.pas
R
//#UC START# *55B8D28B0157for54FECA940175*
//#UC END# *55B8D28B0157for54FECA940175*
// Скрипты в ресурсах (.rc.script)
+ rc.script.pas
R
//#UC START# *55B8D2F80145for54FECA940175*
//#UC END# *55B8D2F80145for54FECA940175*
// Компилятор ресурса (.res.cmd)
+ res.cmd.pas
R
//#UC START# *55B8DD9C0301for54FECA940175*
//#UC END# *55B8DD9C0301for54FECA940175*
// Функции стереотипа
%f _st_space_key
SHD
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Унаследованная реализация
// реализация абстрактного стереотипа Документация::MDAGenerator
// проверка ограничений накладываемых на элемент
%t _constraint
//#UC START# *4704C0E30186for54FECA940175*
c {}
r {""=""}: {}
//#UC END# *4704C0E30186for54FECA940175*
// реализация абстрактного стереотипа Документация::MDAGenerator
// вывод описание авто-генерируемых методов в wiki
%f _wiki_up_add_gen
//#UC START# *470484D50138for54FECA940175*
//#UC END# *470484D50138for54FECA940175*
: ScriptKeywordsPack::Class::creator::Operation
= ScriptKeywordsPack::Class::keyword::Operation
// Функции стереотипа
%f _st_space_key
SHD
%f _IsCreator
// возвращаемый результат: boolean
//#UC START# *5510359500FCfor5510358803BD*
true
//#UC END# *5510359500FCfor5510358803BD*
: ScriptKeywordsPack::Class::globalkeyword::Operation
? Глобальное слово скрипта
= UtilityPack::Class::Operation
// Пользовательские свойства
p NameForScript:s ?
p is immediate:tribool=undefined ?
// Генераторы
// Генерация модели в MDKnow
+ wiki
//#UC START# *46E6D4BB0339for55115A7D0330*
//#UC END# *46E6D4BB0339for55115A7D0330*
// генератор реализации фабрик интерфейсов на java (.java)
+ fctr.java
//#UC START# *470321C1038Afor55115A7D0330*
//#UC END# *470321C1038Afor55115A7D0330*
// Вторая интерфейсная секция стереотипа. Например реализация свойств класса.
+ intf2.pas
R
//#UC START# *477398E501C0for55115A7D0330*
//#UC END# *477398E501C0for55115A7D0330*
// 3-я секция интерфейса. Например поле для свойства.
+ intf3.pas
R
//#UC START# *4774D2A20372for55115A7D0330*
//#UC END# *4774D2A20372for55115A7D0330*
// Генератор файлов форм (.dfm)
+ dfm
R
//#UC START# *49F5795900ECfor55115A7D0330*
//#UC END# *49F5795900ECfor55115A7D0330*
// Скрипты TC (.sd)
+ sd
R
//#UC START# *4DE79AFC0030for55115A7D0330*
//#UC END# *4DE79AFC0030for55115A7D0330*
// Хак для [$281531116]
+ link_to_requests_hack
//#UC START# *4E65F581015Afor55115A7D0330*
//#UC END# *4E65F581015Afor55115A7D0330*
// Ресурсы (.rc)
+ rc.pas
R
//#UC START# *55B8D28B0157for55115A7D0330*
//#UC END# *55B8D28B0157for55115A7D0330*
// Скрипты в ресурсах (.rc.script)
+ rc.script.pas
R
//#UC START# *55B8D2F80145for55115A7D0330*
//#UC END# *55B8D2F80145for55115A7D0330*
// Компилятор ресурса (.res.cmd)
+ res.cmd.pas
R
//#UC START# *55B8DD9C0301for55115A7D0330*
//#UC END# *55B8DD9C0301for55115A7D0330*
// Родные Delphi интерфейсы (.pas)
+ intf.pas
R
//#UC START# *470F1571031Cfor55115A7D0330*
//#UC END# *470F1571031Cfor55115A7D0330*
// Реализация на Delphi(.pas)
+ impl.pas
R
//#UC START# *470F15B800CBfor55115A7D0330*
//#UC END# *470F15B800CBfor55115A7D0330*
// Функции стереотипа
%f _st_space_key
SHD
%f _wiki_up_print
%S#[inherited][{"%S{NameForScript}"!="%S{!NameForScript}"}%f_up_prefix(%S) *NameForScript* = *%S{NameForScript}*
][{"%S{is immediate}"!="%S{!is immediate}"}%f_up_prefix(%S) *is immediate* = *%S{is immediate}*
]
%f _IsGlobalKeyword
// возвращаемый результат: boolean
//#UC START# *55115AD200D8for55115A7D0330*
true
//#UC END# *55115AD200D8for55115A7D0330*
%f _NoForward
// возвращаемый результат: boolean
//#UC START# *55115FF8009Efor55115A7D0330*
true
//#UC END# *55115FF8009Efor55115A7D0330*
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Унаследованная реализация
// реализация абстрактного стереотипа Документация::MDAGenerator
// вывод описание авто-генерируемых методов в wiki
%f _wiki_up_add_gen
//#UC START# *470484D50138for55115A7D0330*
//#UC END# *470484D50138for55115A7D0330*
: ScriptKeywordsPack::Class::varworker::Operation
= ScriptKeywordsPack::Class::keyword::Operation
// Функции стереотипа
%f _st_space_key
SHD
%f _IsVarWorker
// возвращаемый результат: boolean
//#UC START# *55128EF4009Cfor55128EAF022E*
true
//#UC END# *55128EF4009Cfor55128EAF022E*
: ScriptKeywordsPack::Class::globalvarworker::Operation
= ScriptKeywordsPack::Class::globalkeyword::Operation
// Функции стереотипа
%f _st_space_key
SHD
%f _IsVarWorker
// возвращаемый результат: boolean
//#UC START# *55128F060331for55128EDC028D*
true
//#UC END# *55128F060331for55128EDC028D*
: ScriptKeywordsPack::Class::wordworker::Operation
= ScriptKeywordsPack::Class::varworker::Operation
= SupressNextImmediateHolder::Class
// Функции стереотипа
%f _st_space_key
SHD
%f _wiki_up_print
%S%[ScriptKeywordsPack::Class::varworker::Operation]f_wiki_up_print()[{"%S{SupressNextImmediate}"!="%S{!SupressNextImmediate}"}%f_up_prefix(%S) *SupressNextImmediate* = *%S{SupressNextImmediate}*
]
%f _IsWordWorker
// возвращаемый результат: boolean
//#UC START# *5513DB4402E0for5513DB34012F*
true
//#UC END# *5513DB4402E0for5513DB34012F*
: ScriptKeywordsPack::Class::globalwordworker::Operation
= ScriptKeywordsPack::Class::globalvarworker::Operation
= SupressNextImmediateHolder::Class
// Функции стереотипа
%f _st_space_key
SHD
%f _wiki_up_print
%S%[ScriptKeywordsPack::Class::globalvarworker::Operation]f_wiki_up_print()[{"%S{SupressNextImmediate}"!="%S{!SupressNextImmediate}"}%f_up_prefix(%S) *SupressNextImmediate* = *%S{SupressNextImmediate}*
]
%f _IsWordWorker
// возвращаемый результат: boolean
//#UC START# *5513DB6C026Ffor5513DB5502C7*
true
//#UC END# *5513DB6C026Ffor5513DB5502C7*
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Комментариев нет:
Отправить комментарий