ParamsToVariant and VariantToParams
来源:互联网 发布:java 多态 理解 编辑:程序博客网 时间:2024/06/06 13:03
function ParamsToVariant(Params: TParams; Macro, Compatible: Boolean): Variant;
var
I: Integer;
Tmp: Variant;
begin
if (Params.Count = 0) then
Result := Null
else begin
Result := VarArrayCreate([0, Params.Count - 1], varVariant);
for I := 0 to Params.Count - 1 do
with Params[I] do
begin
if Compatible then
Tmp := VarArrayOf([Name, Unassigned, Unassigned, Unassigned]) else
Tmp := VarArrayOf([Name, Unassigned, Unassigned, Unassigned, Macro]);
Tmp[3 - 2 * ord(Compatible)] := Value;
Tmp[1 + ord(Compatible)] := Ord(DataType);
Tmp[2 + ord(Compatible)] := Ord(ParamType);
Result[I] := Tmp;
end;
end;
end;
procedure VariantToParams(const VarParams: Variant; Params: TParams; Compatible: Boolean);
var
I: Integer;
Param: TParam;
begin
Params.Clear;
if not VarIsNull(VarParams) then
for I := 0 to VarArrayHighBound(VarParams, 1) do
begin
Param := Params.CreateParam(
TFieldType(VarParams[I][1 + ord(Compatible)]),
VarParams[I][0],
TParamType(VarParams[I][2 + ord(Compatible)]));
Param.DataType := TFieldType(VarParams[I][1 + ord(Compatible)]);
if VarIsNull(VarParams[I][3 - 2 * ord(Compatible)]) or VarIsEmpty(VarParams[I][3 - 2 * ord(Compatible)]) then
Param.Clear else Param.Value := VarParams[I][3 - 2 * ord(Compatible)];
end;
end;
- ParamsToVariant and VariantToParams
- " and '
- $* and $@
- AND
- AND
- & and &&
- ""and ‘’
- GetMessage () and PeekMessage () and SendMessage () and PostMessage ()
- eval and $()/``and typeset and xargs
- # and #line and __FILE__ and __LINE__
- 这样的东东怎么翻译:and and and And?
- Metalearning and ...?
- .And
- between...and
- 初学and
- '&' and '*' (C++)?
- and or
- grep && and ||
- CoreGraphics--CGSize
- Daisy
- 设计模式:观察者模式
- linux账号管理
- 理解RESTful架构
- ParamsToVariant and VariantToParams
- Android——RIL 机制源码分析
- poj2387 spfa图
- 数组指针存储形式的栈
- c++1
- 联想CTO谈SoC设计能力与处理器架构
- 最大化最小化自定义窗口的尺寸
- HAProxy---HAProxy简介
- Opengl ES 1.x NDK实例开发之三:多边形的旋转