📄 dxjs_extern.pas
字号:
function __setTime (var This:Variant;const Parameters:array of Variant) :Variant;
var
T:TDateTime;
begin
if Length (Parameters) =0 then
T:=SysUtils.Time
else
T:=ToNumber (Parameters[0]) ;
SetValueToScriptObject (This,T) ;
end;
function __setMilliseconds (var This:Variant;const Parameters:array of Variant) :Variant;
var
Time:TDateTime;
Hour,Min,Sec,MSec:Word;
begin
Time:=ToNumber (This) ;
SysUtils.DecodeTime (Time,Hour,Min,Sec,MSec) ;
if Length (Parameters) >0 then
MSec:=ToNumber (Parameters[0]) ;
Time:=SysUtils.EncodeTime (Hour,Min,Sec,MSec) ;
SetValueToScriptObject (This,Time) ;
end;
function __setSeconds (var This:Variant;const Parameters:array of Variant) :Variant;
var
Time:TDateTime;
Hour,Min,Sec,MSec:Word;
begin
Time:=ToNumber (This) ;
SysUtils.DecodeTime (Time,Hour,Min,Sec,MSec) ;
if Length (Parameters) >0 then begin
Sec:=ToNumber (Parameters[0]) ;
if Length (Parameters) >1 then
MSec:=ToNumber (Parameters[1]) ;
end;
Time:=SysUtils.EncodeTime (Hour,Min,Sec,MSec) ;
SetValueToScriptObject (This,Time) ;
end;
function __setMinutes (var This:Variant;const Parameters:array of Variant) :Variant;
var
Time:TDateTime;
Hour,Min,Sec,MSec:Word;
begin
Time:=ToNumber (This) ;
SysUtils.DecodeTime (Time,Hour,Min,Sec,MSec) ;
if Length (Parameters) >0 then begin
Min:=ToNumber (Parameters[0]) ;
if Length (Parameters) >1 then begin
Sec:=ToNumber (Parameters[1]) ;
if Length (Parameters) >2 then
MSec:=ToNumber (Parameters[2]) ;
end;
end;
Time:=SysUtils.EncodeTime (Hour,Min,Sec,MSec) ;
SetValueToScriptObject (This,Time) ;
end;
function __setHours (var This:Variant;const Parameters:array of Variant) :Variant;
var
Time:TDateTime;
Hour,Min,Sec,MSec:Word;
begin
Time:=ToNumber (This) ;
SysUtils.DecodeTime (Time,Hour,Min,Sec,MSec) ;
if Length (Parameters) >0 then begin
Hour:=ToNumber (Parameters[0]) ;
if Length (Parameters) >1 then begin
Min:=ToNumber (Parameters[1]) ;
if Length (Parameters) >2 then begin
Sec:=ToNumber (Parameters[2]) ;
if Length (Parameters) >3 then
MSec:=ToNumber (Parameters[3]) ;
end;
end;
end;
Time:=SysUtils.EncodeTime (Hour,Min,Sec,MSec) ;
SetValueToScriptObject (This,Time) ;
end;
function __setDate (var This:Variant;const Parameters:array of Variant) :Variant;
var
Date:TDateTime;
Year,Month,Day:Word;
begin
Date:=ToNumber (This) ;
SysUtils.DecodeDate (Date,Year,Month,Day) ;
if Length (Parameters) >0 then
Day:=ToNumber (Parameters[0]) ;
Date:=EncodeDate (Year,Month,Day) ;
SetValueToScriptObject (This,Date) ;
end;
function __setMonth (var This:Variant;const Parameters:array of Variant) :Variant;
var
Date:TDateTime;
Year,Month,Day:Word;
begin
Date:=ToNumber (This) ;
SysUtils.DecodeDate (Date,Year,Month,Day) ;
if Length (Parameters) >0 then begin
Month:=ToNumber (Parameters[0]) ;
if Length (Parameters) >1 then
Day:=ToNumber (Parameters[1]) ;
end;
Date:=EncodeDate (Year,Month,Day) ;
SetValueToScriptObject (This,Date) ;
end;
function __setFullYear (var This:Variant;const Parameters:array of Variant) :Variant;
var
Date:TDateTime;
Year,Month,Day:Word;
begin
Date:=ToNumber (This) ;
SysUtils.DecodeDate (Date,Year,Month,Day) ;
if Length (Parameters) >0 then begin
Year:=ToNumber (Parameters[0]) ;
if Length (Parameters) >1 then begin
Month:=ToNumber (Parameters[1]) ;
if Length (Parameters) >2 then
Day:=ToNumber (Parameters[2]) ;
end;
end;
Date:=SysUtils.EncodeDate (Year,Month,Day) ;
SetValueToScriptObject (This,Date) ;
end;
function __abs (var This:Variant;const Parameters:array of Variant) :Variant;
begin
if Length (Parameters) >0 then
result:=Abs (ToNumber (Parameters[0]) ) ;
end;
function __acos (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else if D>1 then
result:=NaN
else if D<-1 then
result:=NaN
else
result:=arccos (D) ;
end;
end;
function __asin (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else if D>1 then
result:=NaN
else if D<-1 then
result:=NaN
else
result:=arcsin (D) ;
end;
end;
function __atan (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else if D>1 then
result:=NaN
else if D<-1 then
result:=NaN
else
result:=arctan (D) ;
end;
end;
function __atan2 (var This:Variant;const Parameters:array of Variant) :Variant;
var
X,Y:Double;
begin
if Length (Parameters) >1 then begin
X:=ToNumber (Parameters[0]) ;
Y:=ToNumber (Parameters[1]) ;
if (X=NaN) or (Y=NaN) then
result:=NaN
else
result:=arctan2 (X,Y) ;
end;
end;
function __ceil (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=ceil (D) ;
end;
end;
function __cos (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=cos (D) ;
end;
end;
function __exp (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=exp (D) ;
end;
end;
function __floor (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=floor (D) ;
end;
end;
function __log (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=ln (D) ;
end;
end;
function __max (var This:Variant;const Parameters:array of Variant) :Variant;
var
D,Max:Double;
I:Integer;
begin
Max:=NEGATIVE_INFINITY;
for I:=0 to Length (Parameters) -1 do begin
D:=ToNumber (Parameters[I]) ;
if D>Max then
Max:=D;
end;
result:=Max;
end;
function __min (var This:Variant;const Parameters:array of Variant) :Variant;
var
D,Min:Double;
I:Integer;
begin
Min:=POSITIVE_INFINITY;
for I:=0 to Length (Parameters) -1 do begin
D:=ToNumber (Parameters[I]) ;
if D<Min then
Min:=D;
end;
result:=Min;
end;
function __pow (var This:Variant;const Parameters:array of Variant) :Variant;
var
X,Y:Double;
begin
if Length (Parameters) >1 then begin
X:=ToNumber (Parameters[0]) ;
Y:=ToNumber (Parameters[1]) ;
if (X=NaN) or (Y=NaN) then
result:=NaN
else
result:=power (X,Y) ;
end;
end;
function __random (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
D:=random (1000) ;
result:=D/1000;
end;
function __round (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
I:Integer;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else begin
I:=round (D) ;
D:=I;
result:=D;
end;
end;
end;
function __sin (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=sin (D) ;
end;
end;
function __sqrt (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=sqrt (D) ;
end;
end;
function __tan (var This:Variant;const Parameters:array of Variant) :Variant;
var
D:Double;
begin
if Length (Parameters) >0 then begin
D:=ToNumber (Parameters[0]) ;
if D=NaN then
result:=NaN
else
result:=tan (D) ;
end;
end;
function __concatArray (var This:Variant;const Parameters:array of Variant) :Variant;
var
SourceArray:TScriptObject;
DestArray:TArrayObject;
I,J,L,Index:Integer;
V:Variant;
begin
DestArray:=TArrayObject.Create (VariantToScriptObject (This) .PScript) ;
Index:=-1;
SourceArray:=TArrayObject (VariantToScriptObject (This) ) ;
L:=SourceArray.GetProperty ('length') ;
for J:=0 to L-1 do begin
Inc (Index) ;
DestArray.PutProperty (IntegerToString (Index) ,SourceArray.GetProperty (IntegerToString (J) ) ) ;
end;
for I:=0 to Length (Parameters) -1 do begin
V:=ToObject (Parameters[I],VariantToScriptObject (This) .PScript) ;
SourceArray:=TArrayObject (VariantToScriptObject (V) ) ;
if SourceArray.ClassProp='String' then begin
Inc (Index) ;
DestArray.PutProperty (IntegerToString (Index) ,SourceArray.DefaultValue) ;
end
else begin
L:=SourceArray.GetProperty ('length') ;
for J:=0 to L-1 do begin
Inc (Index) ;
DestArray.PutProperty (IntegerToString (Index) ,SourceArray.GetProperty (IntegerToString (J) ) ) ;
end;
end;
end;
result:=ScriptObjectToVariant (DestArray) ;
end;
function __joinArray (var This:Variant;const Parameters:array of Variant) :Variant;
var
SourceArray:TScriptObject;
S,Separator:string;
J,L:Integer;
begin
Separator:=',';
if Length (Parameters) >0 then
Separator:=ToString (Parameters[0]) ;
SourceArray:=TArrayObject (VariantToScriptObject (This) ) ;
L:=SourceArray.GetProperty ('length') ;
result:='';
for J:=0 to L-1 do begin
S:=ToString (SourceArray.GetProperty (IntegerToString (J) ) ) ;
result:=result+S;
if J<L-1 then
result:=result+Separator;
end;
end;
function __toStringArray (var This:Variant;const Parameters:array of Variant) :Variant;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -