Unit 'lpeval' Package
[Overview][Types][Procedures and functions][Variables][Index] [#pl_lape]

_LapeDelete

Declaration

Source position: lpeval.pas line 327

var _LapeDelete: lpString = 'procedure _ArrayDelete(var p: Pointer;' + LineEnding + ' Start: SizeInt; Count: SizeInt = High(SizeInt);' + LineEnding + ' ElSize: SizeInt;' + LineEnding + ' Dispose: private procedure(p: Pointer);' + LineEnding + ' Copy: private procedure(Src: ConstPointer; Dst: Pointer));' + LineEnding + 'type' + LineEnding + ' PSizeInt = ^SizeInt;' + LineEnding + 'var' + LineEnding + ' i, Len: SizeInt;' + LineEnding + 'begin' + LineEnding + ' if (p = nil) or (Count <= 0) then' + LineEnding + ' Exit;' + LineEnding + '' + LineEnding + ' Len := PSizeInt(p)[-1]^' + '+1' + ';' + LineEnding + ' if (Start < 0) then' + LineEnding + ' Start := 0' + LineEnding + ' else if (Start >= Len) then' + LineEnding + ' Exit' + LineEnding + ' else if (Len - Count < Start) then' + LineEnding + ' Count := Len - Start;' + LineEnding + '' + LineEnding + ' _ArraySetLength(p, Len, ElSize, Dispose, Copy);' + LineEnding + ' Inc(p, Start * ElSize);' + LineEnding + '' + LineEnding + ' if (Pointer(Dispose) <> nil) then' + LineEnding + ' for i := 0 to (Count - 1) * ElSize with ElSize do' + LineEnding + ' Dispose(p[i]);' + LineEnding + '' + LineEnding + ' if (Start + Count < Len) then' + LineEnding + ' Move(p[Count * ElSize]^, p^, (Len - Start - Count) * ElSize);' + LineEnding + '' + LineEnding + ' Dec(p, Start * ElSize);' + LineEnding + ' _ArraySetLength(p, Len-Count, ElSize, nil, nil);' + LineEnding + 'end;';



CT Web help

CodeTyphon Studio