imp_javascript.pas
来自「Delphi脚本控件」· PAS 代码 · 共 2,672 行 · 第 1/5 页
PAS
2,672 行
end;
end;
procedure _Date_getTime(MethodBody: TPAXMethodBody);
begin
with MethodBody do
Result.AsVariant := ToNumber(DefaultValue);
end;
procedure _Date_getFullYear(MethodBody: TPAXMethodBody);
var
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.DelphiDate, Year, Month, Day);
result.AsVariant := Integer(Year);
end;
end;
procedure _Date_getUTCFullYear(MethodBody: TPAXMethodBody);
var
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.UTCDelphiDate, Year, Month, Day);
result.AsVariant := Integer(Year);
end;
end;
procedure _Date_getMonth(MethodBody: TPAXMethodBody);
var
Year,Month,Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.DelphiDate, Year, Month, Day);
result.AsVariant := Integer(Month - 1);
end;
end;
procedure _Date_getUTCMonth(MethodBody: TPAXMethodBody);
var
Year,Month,Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.UTCDelphiDate, Year, Month, Day);
result.AsVariant := Integer(Month - 1);
end;
end;
procedure _Date_getDate(MethodBody: TPAXMethodBody);
var
Year,Month,Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.DelphiDate, Year, Month, Day);
result.AsVariant := Integer(Day);
end;
end;
procedure _Date_getUTCDate(MethodBody: TPAXMethodBody);
var
Year,Month,Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.UTCDelphiDate, Year, Month, Day);
result.AsVariant := Day;
end;
end;
procedure _Date_getDay(MethodBody: TPAXMethodBody);
var
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
result.AsVariant := DayOfWeek(SO.DelphiDate) - 1;
end;
end;
procedure _Date_getUTCDay(MethodBody: TPAXMethodBody);
var
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
result.AsVariant := DayOfWeek(SO.UTCDelphiDate) - 1;
end;
end;
procedure _Date_getHours(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(Hour);
end;
end;
procedure _Date_getUTCHours(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(Hour);
end;
end;
procedure _Date_getMinutes(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(Min);
end;
end;
procedure _Date_getUTCMinutes(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(Min);
end;
end;
procedure _Date_getSeconds(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(Sec);
end;
end;
procedure _Date_getUTCSeconds(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(Sec);
end;
end;
procedure _Date_getMilliseconds(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(MSec);
end;
end;
procedure _Date_getUTCMilliseconds(MethodBody: TPAXMethodBody);
var
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
result.AsVariant := Integer(MSec);
end;
end;
procedure _Date_setTime(MethodBody: TPAXMethodBody);
var
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
if ParamCount = 0 then
SO.SetDelphiDate(Now())
else
SO.SetDefaultValue(ToNumber(Params[0].AsVariant));
end;
end;
procedure _Date_setMilliseconds(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
MSec := ToInt32(Params[0].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setUTCMilliseconds(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
MSec := ToInt32(Params[0].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setSeconds(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
Sec := ToInt32(Params[0].AsVariant);
if ParamCount > 1 then
MSec := ToInt32(Params[1].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setUTCSeconds(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
Sec := ToInt32(Params[0].AsVariant);
if ParamCount > 1 then
MSec := ToInt32(Params[1].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setMinutes(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
Min := ToInt32(Params[0].AsVariant);
if ParamCount > 1 then
Sec := ToInt32(Params[1].AsVariant);
if ParamCount > 2 then
MSec := ToInt32(Params[2].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setUTCMinutes(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
Min := ToInt32(Params[0].AsVariant);
if ParamCount > 1 then
Sec := ToInt32(Params[1].AsVariant);
if ParamCount > 2 then
MSec := ToInt32(Params[2].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setHours(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.DelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
Hour := ToInt32(Params[0].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setUTCHours(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Hour, Min, Sec, MSec: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeTime(SO.UTCDelphiDate, Hour, Min, Sec, MSec);
if ParamCount > 0 then
Hour := ToInt32(Params[0].AsVariant);
Date := EncodeTime(Hour, Min, Sec, MSec);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setDate(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.DelphiDate, Year, Month, Day);
if ParamCount > 0 then
Day := ToNumber(Params[0].AsVariant) + 1;
Date := EncodeDate(Year, Month, Day);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setUTCDate(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.UTCDelphiDate, Year, Month, Day);
if ParamCount > 0 then
Day := ToNumber(Params[0].AsVariant) + 1;
Date := EncodeDate(Year, Month, Day);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setMonth(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.DelphiDate, Year, Month, Day);
if ParamCount > 0 then
Month := ToNumber(Params[0].AsVariant) + 1;
if ParamCount > 1 then
Day := ToNumber(Params[1].AsVariant) + 1;
Date := EncodeDate(Year, Month, Day);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setUTCMonth(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.UTCDelphiDate, Year, Month, Day);
if ParamCount > 0 then
Month := ToNumber(Params[0].AsVariant) + 1;
if ParamCount > 1 then
Day := ToNumber(Params[1].AsVariant) + 1;
Date := EncodeDate(Year, Month, Day);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setFullYear(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.DelphiDate, Year, Month, Day);
if ParamCount > 0 then
Year := ToNumber(Params[0].AsVariant);
if ParamCount > 1 then
Month := ToNumber(Params[1].AsVariant) + 1;
if ParamCount > 2 then
Day := ToNumber(Params[2].AsVariant) + 1;
Date := EncodeDate(Year, Month, Day);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_setUTCFullYear(MethodBody: TPAXMethodBody);
var
Date: TDateTime;
Year, Month, Day: Word;
SO: TPAXJavaScriptDateObject;
begin
with MethodBody do
begin
SO := TPAXJavaScriptDateObject(Self);
DecodeDate(SO.DelphiDate, Year, Month, Day);
if ParamCount > 0 then
Year := ToNumber(Params[0].AsVariant);
if ParamCount > 1 then
Month := ToNumber(Params[1].AsVariant) + 1;
if ParamCount > 2 then
Day := ToNumber(Params[2].AsVariant) + 1;
Date := EncodeDate(Year, Month, Day);
SO.SetDelphiDate(Date);
end;
end;
procedure _Date_getTimezoneOffset(MethodBody: TPAXMethodBody);
begin
with MethodBody do
begin
result.AsVariant := - (GetGMTDifference * SecsPerHour);
end;
end;
/////////////// MATH ////////////////////////////////////
procedure _Math_abs(MethodBody: TPAXMethodBody);
var
V: Variant;
begin
with MethodBody do
begin
if ParamCount > 0 then
begin
V := ToNumber(Params[0].AsVariant);
if V > 0 then
result.AsVariant := V
else
result.AsVariant := - V;
end;
end;
end;
procedure _Math_acos(MethodBody: TPAXMethodBody);
var
D: Double;
begin
with MethodBody do
if ParamCount > 0 then
begin
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?