DECODES := 'msg~name~Text~';
ParamsCount := 0;
while (DECODES <> '') do
begin
Inc(ParamsCount);
P := Pos('~', DECODES);
if P = 0 then
Params[ParamsCount] := DECODES
else
begin
Params[ParamsCount] := Copy(DECODES, 1, P - 1);
Delete(DECODES, 1, P);
end;
end;