Stačí sa pozrieť na knižnicu System...
Takto vyzerá funkcia _Copy originál v Unit-e System:
var
Len, I: Integer;
begin
Len := Byte(S[0]);
if Len = 0 then
Byte(Result[0]) := 0
else
begin
if Index <= 0 then Index := 1
else if Index > Len then Count := 0;
Len := Len - Index + 1;
if Count < 0 then Count := 0
else if Count > Len then Count := Len;
Byte(Result[0]) := Count;
for I := 1 to Count do
Result[I] := S[Index + I - 1];
end;
end;
Neviem si predstaviť ako vymyslieť svoju vlastnú funkciu inak...