IIF(условие, результат при TRUE, результат при FALSE)
Если http://forum.hiasm.com/getfile/37876 разархивировать в Elements\Delphi\code, то появится возможность использования этой функции.
Пример подключаемой функции SQLite
Add(InlineCode,14378720,287,294)
{
@Hint=#15:Функция SumProp|
WorkPoints=#11:addFunction|
DataPoints=#8:dbHandle|
Code=#15:unit HiAsmUnit;|24:// Author Tad 15.10.2016|37:// Данные ограничены значением MAXINT|0:|0:|9:interface|0:|60:uses kol,Share,Debug,Windows,SQLite3Api,hiSQLite_DB, myFunc;|0:|4:type|28: THiAsmClass = class(TDebug)|9: public|22: dbHandle:THI_Event;|52: procedure addFunction(var _Data:TData; idx:word);|5: end;|0:|14:implementation|0:|65:procedure myFunc(ctx:pointer; nArg:integer; args:ppvalue); cdecl;|16:var Res:String; |7: begin |51: Res := NumToWordBux(sqlite3_value_double(args^));|67: sqlite3_result_text(ctx,PChar(Res),Length(Res),SQLITE_TRANSIENT);|4:end;|0:|34:procedure THiAsmClass.addFunction;|13:var dt:TData;|5:begin|37: dt := ReadData(_Data,dbHandle,nil);|36: if _IsObject(dt,SQLite_GUID) then |92: sqlite3_create_function(ToObject(dt),PChar('SumProp'),1,SQLITE_ANY,nil,@myFunc,nil,nil);|4:end;|0:|4:end.|
AddHint(-114,-26,107,13,@Hint)
}
Пример IC для получения суммы прописью
Add(MainForm,2953706,112,280)
{
Width=916
Height=119
Point(onClose)
}
Add(Button,2195436,336,413)
{
Left=20
Top=20
Caption="123.20"
Data=String(999999999.99)
link(onClick,1447056:doWork,[])
}
Add(Edit,12989484,385,364)
{
Left=90
Top=20
Width=115
Text=""
}
Add(InlineCode,1447056,385,413)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
DataPoints=#3:Sum|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug, myFunc;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|25: onRes, Sum :THI_Event;|49: procedure doWork(var _Data:TData; Index:Word);|5: end;|0:|14:implementation|0:|29:procedure THiAsmClass.doWork;|0:|14:var Ss:string;|5:BEGIN|56: _hi_onEvent(onRes,NumToWordBux(ReadReal(_Data, Sum)));|4:END;|4:end.|
link(onRes,16448703:doText,[])
link(Sum,12989484:Text,[])
}
Add(Edit,16448703,434,413)
{
Left=10
Top=45
Width=875
}
--- Добавлено в 2016-10-15 11:29:25
Для работы, например в Украине, замените
const
sEd: array[0..19] of string[14] = ('', 'один ', 'два ', 'три ', 'чотири ', 'п`ять ', 'шість ', 'сім ', 'вісім ', 'дев`ять ', 'десять ', 'одинадцять ', 'дванадцять ', 'тринадцять ', 'чотирнадцять ', 'п`ятнадцять ', 'шістнадцять ', 'сімнадцять ', 'вісімнадцять ', 'дев`ятнадцять ');
sEd1: array[1..2] of string[5] = ('одна ','дві ');
sDes: array[0..9] of string[12] = ('', '','двадцять ', 'тридцять ', 'сорок ', 'п`ятдесят ', 'шістдесят ', 'сімдесят ', 'вісімдесят ', 'дев`яносто ');
sSot: array[0..9] of string[10] = ('','сто ', 'двісті ', 'триста ', 'чотириста ', 'п`ятсот ', 'шістсот ', 'сімсот ', 'вісімсот ', 'дев`ятсот ');
sRub: array[0..4,0..2] of String[11] = (('гривень ', 'гривня ', 'гривні '),('тисяч ','тисяча ','тисячі '),
('мільйонiв ', 'мільйон ', 'мільйони '),('мільярдiв ', 'мільярд ', 'мільярди '),('копiйок.', 'копiйка.', 'копiйки.'));
Редактировалось 10 раз(а), последний 2016-10-15 12:49:51