У меня такая задача: Не обходибо выделить память в байтах, после 1й байта этого куска памяти присвоить в переменную-указатель типа TDTime(свой формат, который применяется у нас на станции), и во второй указатель на массив типа TParameter(много объектов будет). Все не обходимо решить динамически, т.к. должна быть ф-ция (конструктор) которая зная сво-ва компонента будет создавать такой буфер и инициализоровать указатели.
Решением моей задачи на си будет таковым:
Код: Выделить всё
SizeOfBuf = sizoof(TDtime) + (sizeof(Tparameter)* CountParams);
char * aBuf = new char[SizeOfBuf];
TDtime * pDT = (TDtime *)aBuf;
Tparameter * pParams = (Tparameter *)((int)aBuf + sizeof(TDtime));
Прошу помочь мне решить эту небольшую задачку на дельфи!
Что пробовал:
Код: Выделить всё
aBuf : Pointer;
dtime : ^TDTime;
params : PParameters;
// aBuf := GetMemory(SizeOf(TDTime) + (SizeOf(TParameter) * FCountParams));
// dtime := aBuf;
// params := Pointer(Integer(aBuf) + SizeOf(TDTime));
Я при использовании компонента, кидаю на форму, после File -> Close All получаю в Турбо Дельфи "Invalid Pointer"