📄 cs2_var.pas
字号:
CSV_SByte: v1^.CV_SByte := v2^.CV_SByte;
CSV_UInt16: v1^.CV_UInt16 := v2^.CV_UInt16;
CSV_SInt16: v1^.CV_SInt16 := v2^.CV_SInt16;
CSV_UInt32: v1^.CV_UInt32 := v2^.CV_UInt32;
CSV_SInt32: v1^.CV_SInt32 := v2^.CV_Sint32;
CSV_Char: v1^.CV_Char := v2^.CV_Char;
CSV_String: v1^.CV_Str := v2^.CV_Str;
CSV_Real: v1^.CV_Real := v2^.CV_Real;
CSV_Single: v1^.CV_Single := v2^.CV_Single;
CSV_Double: v1^.CV_Double := v2^.CV_Double;
CSV_Extended: v1^.CV_Extended := v2^.CV_Extended;
CSV_Comp: v1^.CV_Comp := v2^.CV_Comp;
CSV_Bool: v1^.CV_Bool := v2^.CV_Bool;
CSV_Array: begin
v1.cv_ArrItems.Create;
for i := 1 to v2^.CV_ArrItems.Count - 1 do
begin
AddArrayVar(v1.CV_ArrItems, v2^.CV_ArrItems.GetItem(i));
end;
end;
end;
end;
end;
end;
ptMinus:
case v1^.VType of
CSV_UByte:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_UByte - GetReal(v2))
else
v1^.CV_UByte := v1^.CV_UByte - GetInt(V2);
end;
CSV_SByte:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_SByte - GetReal(v2))
else
v1^.CV_SByte := v1^.CV_SByte - GetInt(V2);
end;
CSV_UInt16:
begin
if IsRealType(v2) then
MakeItReal(v1^.Cv_UInt16 - GetReal(v2))
else
v1^.CV_UInt16 := v1^.CV_UInt16 - GetInt(V2);
end;
CSV_SInt16:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_SInt16 - GetReal(v2))
else
v1^.CV_SInt16 := v1^.CV_SInt16 - GetInt(V2);
end;
CSV_UInt32:
begin
if IsRealType(v2) then
MakeItReal(V1^.Cv_Uint32 - GetReal(v2))
else
v1^.CV_UInt32 := v1^.CV_UInt32 - GetInt(V2);
end;
CSV_SInt32:
begin
if IsRealType(v2) then
MakeItReal(v1^.Cv_Sint32 - GetReal(v2))
else
v1^.CV_SInt32 := v1^.CV_SInt32 - GetInt(V2);
end;
CSV_Real:
begin
v1^.CV_Real := v1^.CV_Real - GetReal(V2);
end;
CSV_Single:
begin
v1^.CV_Single := v1^.CV_Single - GetReal(V2);
end;
CSV_Double:
begin
v1^.CV_Double := v1^.CV_Double - GetReal(V2);
end;
CSV_Extended:
begin
v1^.CV_Extended := v1^.CV_Extended - GetReal(V2);
end;
CSV_Comp:
begin
v1^.cv_Comp := v1^.cv_Comp - GetReal(V2);
end;
else
Err := True;
end { CASE };
ptPlus:
case v1^.VType of
CSV_UByte:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_UByte + GetReal(v2))
else
v1^.CV_UByte := v1^.CV_UByte + GetInt(V2);
end;
CSV_SByte:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_SByte + GetReal(v2))
else
v1^.CV_SByte := v1^.CV_SByte + GetInt(V2);
end;
CSV_UInt16:
begin
if IsRealType(v2) then
MakeItReal(v1^.Cv_UInt16 + GetReal(v2))
else
v1^.CV_UInt16 := v1^.CV_UInt16 + GetInt(V2);
end;
CSV_SInt16:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_SInt16 + GetReal(v2))
else
v1^.CV_SInt16 := v1^.CV_SInt16 + GetInt(V2);
end;
CSV_UInt32:
begin
if IsRealType(v2) then
MakeItReal(V1^.Cv_Uint32 + GetReal(v2))
else
v1^.CV_UInt32 := v1^.CV_UInt32 + GetInt(V2);
end;
CSV_SInt32:
begin
if IsRealType(v2) then
MakeItReal(v1^.Cv_Sint32 + GetReal(v2))
else
v1^.CV_SInt32 := v1^.CV_SInt32 + GetInt(V2);
end;
CSV_Real:
begin
v1^.CV_Real := v1^.CV_Real + GetReal(V2);
end;
CSV_Single:
begin
v1^.CV_Single := v1^.CV_Single + GetReal(V2);
end;
CSV_Double:
begin
v1^.CV_Double := v1^.CV_Double + GetReal(V2);
end;
CSV_Extended:
begin
v1^.CV_Extended := v1^.CV_Extended + GetReal(V2);
end;
CSV_Comp:
begin
v1^.cv_Comp := v1^.cv_Comp + GetReal(V2);
end;
CSV_String:
begin
v1^.cv_Str := v1^.cv_str + GetStr(v2);
end;
else
Err := True;
end { CASE };
ptMul:
case v1^.VType of
CSV_UByte:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_UByte * GetReal(v2))
else
v1^.CV_UByte := v1^.CV_UByte * GetInt(V2);
end;
CSV_SByte:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_SByte * GetReal(v2))
else
v1^.CV_SByte := v1^.CV_SByte * GetInt(V2);
end;
CSV_UInt16:
begin
if IsRealType(v2) then
MakeItReal(v1^.Cv_UInt16 * GetReal(v2))
else
v1^.CV_UInt16 := v1^.CV_UInt16 * GetInt(V2);
end;
CSV_SInt16:
begin
if IsRealType(v2) then
MakeItReal(v1^.CV_SInt16 * GetReal(v2))
else
v1^.CV_SInt16 := v1^.CV_SInt16 * GetInt(V2);
end;
CSV_UInt32:
begin
if IsRealType(v2) then
MakeItReal(V1^.Cv_Uint32 * GetReal(v2))
else
v1^.CV_UInt32 := v1^.CV_UInt32 * GetInt(V2);
end;
CSV_SInt32:
begin
if IsRealType(v2) then
MakeItReal(v1^.Cv_Sint32 * GetReal(v2))
else
v1^.CV_SInt32 := v1^.CV_SInt32 * GetInt(V2);
end;
CSV_Real:
begin
v1^.CV_Real := v1^.CV_Real * GetReal(V2);
end;
CSV_Single:
begin
v1^.CV_Single := v1^.CV_Single * GetReal(V2);
end;
CSV_Double:
begin
v1^.CV_Double := v1^.CV_Double * GetReal(V2);
end;
CSV_Extended:
begin
v1^.CV_Extended := v1^.CV_Extended * GetReal(V2);
end;
CSV_Comp:
begin
v1^.cv_Comp := v1^.cv_Comp * GetReal(V2);
end;
else
Err := True;
end { CASE };
ptDiv:
begin
case v1^.VType of
CSV_UByte:
begin
MakeItReal(v1^.CV_UByte / GetReal(v2));
end;
CSV_SByte:
begin
MakeItReal(v1^.CV_SByte / GetReal(v2));
end;
CSV_UInt16:
begin
MakeItReal(v1^.CV_UInt16 / GetReal(v2));
end;
CSV_SInt16:
begin
MakeItReal(v1^.CV_SInt16 / GetReal(v2));
end;
CSV_UInt32:
begin
MakeItReal(v1^.CV_UInt32 / GetReal(v2));
end;
CSV_SInt32:
begin
MakeItReal(v1^.Cv_Sint32 / GetReal(v2));
end;
CSV_Real:
begin
v1^.CV_Real := v1^.CV_Real / GetReal(V2);
end;
CSV_Single:
begin
v1^.CV_Single := v1^.CV_Single / GetReal(V2);
end;
CSV_Double:
begin
v1^.CV_Double := v1^.CV_Double / GetReal(V2);
end;
CSV_Extended:
begin
v1^.CV_Extended := v1^.CV_Extended / GetReal(V2);
end;
CSV_Comp:
begin
v1^.cv_Comp := v1^.cv_Comp / GetReal(V2);
end;
else
Err := True;
end { CASE };
end; { begin }
ptIntDiv:
begin
if not isIntegerType(V2) then
begin
Perform := False;
Exit;
end;
case v1^.VType of
CSV_UByte:
begin
v1^.CV_UByte := v1^.CV_UByte div GetInt(V2);
end;
CSV_SByte:
begin
v1^.CV_SByte := v1^.CV_SByte div GetInt(V2);
end;
CSV_UInt16:
begin
v1^.CV_UInt16 := v1^.CV_UInt16 div GetInt(V2);
end;
CSV_SInt16:
begin
v1^.CV_SInt16 := v1^.CV_SInt16 div GetInt(V2);
end;
CSV_UInt32:
begin
v1^.CV_UInt32 := v1^.CV_UInt32 div GetInt(V2);
end;
CSV_SInt32:
begin
v1^.CV_SInt32 := v1^.CV_SInt32 div GetInt(V2);
end;
else
Err := True;
end;
end;
ptIntMod:
begin
if not isIntegerType(V2) then
begin
Perform := false;
Exit;
end;
case v1^.VType of
CSV_UByte:
begin
v1^.CV_UByte := v1^.CV_UByte mod GetInt(V2);
end;
CSV_SByte:
begin
v1^.CV_SByte := v1^.CV_SByte mod GetInt(V2);
end;
CSV_UInt16:
begin
v1^.CV_UInt16 := v1^.CV_UInt16 mod GetInt(V2);
end;
CSV_SInt16:
begin
v1^.CV_SInt16 := v1^.CV_SInt16 mod GetInt(V2);
end;
CSV_UInt32:
begin
v1^.CV_UInt32 := v1^.CV_UInt32 mod GetInt(V2);
end;
CSV_SInt32:
begin
v1^.CV_SInt32 := v1^.CV_SInt32 mod GetInt(V2);
end;
else
Err := True;
end;
end;
ptAnd:
begin
if (not isIntegerType(V2)) and (not ISBooleanType(v2)) then
begin
Perform := False;
Exit;
end;
case v1^.VType of
CSV_UByte:
begin
v1^.CV_UByte := v1^.CV_UByte and GetInt(V2);
end;
CSV_SByte:
begin
v1^.CV_SByte := v1^.CV_SByte and GetInt(V2);
end;
CSV_UInt16:
begin
v1^.CV_UInt16 := v1^.CV_UInt16 and GetInt(V2);
end;
CSV_SInt16:
begin
v1^.CV_SInt16 := v1^.CV_SInt16 and GetInt(V2);
end;
CSV_UInt32:
begin
v1^.CV_UInt32 := v1^.CV_UInt32 and GetInt(V2);
end;
CSV_SInt32:
begin
v1^.CV_SInt32 := v1^.CV_SInt32 and GetInt(V2);
end;
CSV_Bool:
begin
v1^.CV_Bool := v1^.CV_Bool and GetBool(V2);
end;
else
Err := True;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -