📄 fs_iclassesrtti.pas
字号:
if MethodName = 'ADD' then
Result := _TStrings.Add(Params[0])
else if MethodName = 'ADDOBJECT' then
Result := _TStrings.AddObject(Params[0], TObject(Integer(Params[1])))
else if MethodName = 'CLEAR' then
_TStrings.Clear
else if MethodName = 'DELETE' then
_TStrings.Delete(Params[0])
else if MethodName = 'INDEXOF' then
Result := _TStrings.IndexOf(Params[0])
else if MethodName = 'INDEXOFNAME' then
Result := _TStrings.IndexOfName(Params[0])
else if MethodName = 'INDEXOFOBJECT' then
Result := _TStrings.IndexOfObject(TObject(Integer(Params[0])))
else if MethodName = 'INSERT' then
_TStrings.Insert(Params[0], Params[1])
else if MethodName = 'INSERTOBJECT' then
_TStrings.InsertObject(Params[0], Params[1], TObject(Integer(Params[2])))
else if MethodName = 'LOADFROMFILE' then
_TStrings.LoadFromFile(Params[0])
else if MethodName = 'LOADFROMSTREAM' then
_TStrings.LoadFromStream(TStream(Integer(Params[0])))
else if MethodName = 'MOVE' then
_TStrings.Move(Params[0], Params[1])
else if MethodName = 'SAVETOFILE' then
_TStrings.SaveToFile(Params[0])
else if MethodName = 'SAVETOSTREAM' then
_TStrings.SaveToStream(TStream(Integer(Params[0])))
else if MethodName = 'NAMES.GET' then
Result := _TStrings.Names[Params[0]]
else if MethodName = 'OBJECTS.GET' then
Result := Integer(_TStrings.Objects[Params[0]])
else if MethodName = 'OBJECTS.SET' then
_TStrings.Objects[Params[0]] := TObject(Integer(Params[1]))
else if MethodName = 'VALUES.GET' then
Result := _TStrings.Values[Params[0]]
else if MethodName = 'VALUES.SET' then
_TStrings.Values[Params[0]] := Params[1]
else if MethodName = 'STRINGS.GET' then
Result := _TStrings.Strings[Params[0]]
else if MethodName = 'STRINGS.SET' then
_TStrings.Strings[Params[0]] := Params[1]
end
else if ClassType = TStringList then
begin
if MethodName = 'FIND' then
begin
Result := TStringList(Instance).Find(Params[0], i);
Params[1] := i;
end
else if MethodName = 'SORT' then
TStringList(Instance).Sort
end
else if ClassType = TStream then
begin
_TStream := TStream(Instance);
if MethodName = 'READ' then
begin
SetLength(s, Integer(Params[1]));
Result := _TStream.Read(s[1], Params[1]);
SetLength(s, Integer(Result));
Params[0] := s;
end
else if MethodName = 'WRITE' then
begin
s := Params[0];
Result := _TStream.Write(s[1], Params[1]);
end
else if MethodName = 'SEEK' then
Result := _TStream.Seek(Params[0], Params[1])
else if MethodName = 'COPYFROM' then
Result := _TStream.CopyFrom(TStream(Integer(Params[0])), Params[1])
end
else if ClassType = TFileStream then
begin
if MethodName = 'CREATE' then
Result := Integer(TFileStream(Instance).Create(Params[0], Params[1]))
end
else if ClassType = TMemoryStream then
begin
_TMemoryStream := TMemoryStream(Instance);
if MethodName = 'CLEAR' then
_TMemoryStream.Clear
else if MethodName = 'LOADFROMSTREAM' then
_TMemoryStream.LoadFromStream(TStream(Integer(Params[0])))
else if MethodName = 'LOADFROMFILE' then
_TMemoryStream.LoadFromFile(Params[0])
else if MethodName = 'SAVETOSTREAM' then
_TMemoryStream.SaveToStream(TStream(Integer(Params[0])))
else if MethodName = 'SAVETOFILE' then
_TMemoryStream.SaveToFile(Params[0])
end
else if ClassType = TComponent then
begin
if MethodName = 'CREATE' then
Result := Integer(TComponent(Instance).Create(TComponent(Integer(Params[0]))))
end
else if ClassType = TfsXMLItem then
begin
_TfsXMLItem := TfsXMLItem(Instance);
if MethodName = 'CREATE' then
Result := Integer(_TfsXMLItem.Create)
else if MethodName = 'ADDITEM' then
_TfsXMLItem.AddItem(TfsXMLItem(Integer(Params[0])))
else if MethodName = 'CLEAR' then
_TfsXMLItem.Clear
else if MethodName = 'INSERTITEM' then
_TfsXMLItem.InsertItem(Params[0], TfsXMLItem(Integer(Params[1])))
else if MethodName = 'ADD' then
Result := Integer(_TfsXMLItem.Add)
else if MethodName = 'FIND' then
Result := _TfsXMLItem.Find(Params[0])
else if MethodName = 'FINDITEM' then
Result := Integer(_TfsXMLItem.FindItem(Params[0]))
else if MethodName = 'PROP' then
Result := _TfsXMLItem.Prop[Params[0]]
else if MethodName = 'ROOT' then
Result := Integer(_TfsXMLItem.Root)
else if MethodName = 'ROOT' then
Result := Integer(_TfsXMLItem.Root)
else if MethodName = 'ITEMS.GET' then
Result := Integer(_TfsXMLItem[Params[0]])
end
else if ClassType = TfsXMLDocument then
begin
_TfsXMLDocument := TfsXMLDocument(Instance);
if MethodName = 'CREATE' then
Result := Integer(_TfsXMLDocument.Create)
else if MethodName = 'SAVETOSTREAM' then
_TfsXMLDocument.SaveToStream(TStream(Integer(Params[0])))
else if MethodName = 'LOADFROMSTREAM' then
_TfsXMLDocument.LoadFromStream(TStream(Integer(Params[0])))
else if MethodName = 'SAVETOFILE' then
_TfsXMLDocument.SaveToFile(Params[0])
else if MethodName = 'LOADFROMFILE' then
_TfsXMLDocument.LoadFromFile(Params[0])
end
end;
function TFunctions.GetProp(Instance: TObject; ClassType: TClass;
const PropName: String): Variant;
begin
Result := 0;
if ClassType = TCollection then
begin
if PropName = 'COUNT' then
Result := TCollection(Instance).Count
end
else if ClassType = TList then
begin
if PropName = 'COUNT' then
Result := TList(Instance).Count
end
else if ClassType = TStrings then
begin
if PropName = 'COMMATEXT' then
Result := TStrings(Instance).CommaText
else if PropName = 'COUNT' then
Result := TStrings(Instance).Count
else if PropName = 'TEXT' then
Result := TStrings(Instance).Text
end
else if ClassType = TStringList then
begin
if PropName = 'DUPLICATES' then
Result := TStringList(Instance).Duplicates
else if PropName = 'SORTED' then
Result := TStringList(Instance).Sorted
end
else if ClassType = TStream then
begin
if PropName = 'POSITION' then
Result := TStream(Instance).Position
else if PropName = 'SIZE' then
Result := TStream(Instance).Size
end
else if ClassType = TComponent then
begin
if PropName = 'OWNER' then
Result := Integer(TComponent(Instance).Owner)
end
else if ClassType = TfsXMLItem then
begin
if PropName = 'DATA' then
Result := Integer(TfsXMLItem(Instance).Data)
else if PropName = 'COUNT' then
Result := TfsXMLItem(Instance).Count
else if PropName = 'NAME' then
Result := TfsXMLItem(Instance).Name
else if PropName = 'PARENT' then
Result := Integer(TfsXMLItem(Instance).Parent)
else if PropName = 'TEXT' then
Result := TfsXMLItem(Instance).Text
end
else if ClassType = TfsXMLDocument then
begin
if PropName = 'ROOT' then
Result := Integer(TfsXMLDocument(Instance).Root)
end
end;
procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass;
const PropName: String; Value: Variant);
begin
if ClassType = TStrings then
begin
if PropName = 'COMMATEXT' then
TStrings(Instance).CommaText := Value
else if PropName = 'TEXT' then
TStrings(Instance).Text := Value
end
else if ClassType = TStringList then
begin
if PropName = 'DUPLICATES' then
TStringList(Instance).Duplicates := Value
else if PropName = 'SORTED' then
TStringList(Instance).Sorted := Value
end
else if ClassType = TStream then
begin
if PropName = 'POSITION' then
TStream(Instance).Position := Value
end
else if ClassType = TfsXMLItem then
begin
if PropName = 'DATA' then
TfsXMLItem(Instance).Data := Pointer(Integer(Value))
else if PropName = 'NAME' then
TfsXMLItem(Instance).Name := Value
else if PropName = 'TEXT' then
TfsXMLItem(Instance).Text := Value
end
end;
initialization
Functions := TFunctions.Create;
finalization
Functions.Free;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -