А что мешает ее самому сделать? Вот поэксперементируй:
| Код | type TDataType=(dtByte,dtWord,dtInteger);
var Form1: TForm1;
implementation
{$R *.dfm}
function ArrayGetIndex(Arr:Pointer;Value, ArrLength:integer;DataType:TDataType):Integer; var i:integer; begin Result:=-1; for i:=0 to ArrLength-1 do case DataType of dtByte: begin if PByte(Arr)^=Value then begin Result:=i; Exit; end; Inc(PByte(Arr)); end; dtWord: begin if PWord(Arr)^=Value then begin Result:=i; Exit; end; Inc(PWord(Arr)); end; dtInteger: begin if PInteger(Arr)^=Value then begin Result:=i; Exit; end; Inc(PInteger(Arr)); end; end; end;
procedure TForm1.Button1Click(Sender: TObject); var ByteArr:array[0..2] of Byte; WordArr:array[0..3] of Word; IntArr:array[0..1] of Integer; begin ByteArr[0]:=10; ByteArr[1]:=11; ByteArr[2]:=15; ShowMessage(Format('Индекс равен %d',[ArrayGetIndex(@ByteArr,15,3,dtByte)])); WordArr[0]:=100; WordArr[1]:=1000; WordArr[2]:=10000; WordArr[3]:=21746; ShowMessage(Format('Индекс равен %d',[ArrayGetIndex(@WordArr,100,4,dtWord)])); IntArr[0]:=2134777; IntArr[1]:=$FFFFFFFF; ShowMessage(Format('Индекс равен %d',[ArrayGetIndex(@IntArr,$FFFFFFFF,2,dtInteger)])); end;
end. | |