Следующая статья: TTrackBar для эстетов.
Не существует способа непосредственного доступа к массиву размером свыше 65520 элементов. Или вы пользуетесь для распределения памяти GlobalAlloc или TMemoryStream и создаете специализированный класс для доступа к элементам массива, или вы делаете это непосредственно вручную. Добраться до следующих сегментов GlobalAlloc объекта можно, строя указатели с помощью SelectorInc. Самый простой способ заключается в применении TMemoryStream.
type Tmyarr=class buffer: TMemoryStream; elsize:LongInt; constructor Create(esize, number: Word); destructor Free; procedure SetElement(index: Word; p: Pointer); procedure GetElement(index: Word; p: Pointer); end; implementation constructor Tmyarr.Create(esize, number: Word); var size:LongInt; begin Inherited Create; buffer:=TMemoryStream.Create; elsize:=esize; size:=esize * number; buffer.SetSize(size); end; destructor Tmyarr.Free; begin if Self<>Nil then begin buffer.Free; Destroy; end; end; procedure Tmyarr.GetElement(index: Word; p: Pointer); begin buffer.Seek(elsize * index, 0); buffer.Read(p^, elsize); end; procedure Tmyarr.SetElement(index: Word; p: Pointer); begin buffer.Seek(elsize * index, 0); buffer.Write(p^, elsize); end;