Приветствую уважаемых форумчан. Имеется массив структур в котором содержатся значения типа:
| Код | TRGB32 = packed record B, G, R, A: Byte; end;
|
Так же имеется структура:
| Код | TRGB24 = packed record B, G, R : byte; end;
|
Собственно мне нужно этот массив структур засунуть в строку, что я и пытаюсь сделать следующим способом:
| Код | var i : integer; DestLen : longword; DataStr : string; CorrectData : PRGB24; begin SetLength(DataStr,w*h*3); //getmem(correctdata, w*h*3); CorrectData:= PRGB24(@DataStr[1]); for i := w*h - 1 downto 0 do begin CorrectData^[i].R := FData^[i].R; CorrectData^[i].G := FData^[i].G; CorrectData^[i].B := FData^[i].B; end;
|
Тип PRgb24 - указатель на массив TRGB24. В вышеприведённом коде, каждый раз при попытке записать в преобразованную строку - я получаю ошибку записи, в строке CorrectData^[i].R := FData^[i].R;. Так вот собственно вопрос, как мне преобразовать этот самый массив структур TRGB32 в строку в виде массива TRGB24.
PS: Оу, чего-то я заработался. Тема должна называться запись массива структур в строку. Чем-то не тем я подумал, когда название темы писал-(
|