Una posible respuesta a tu prengunta, puede ser:
Código Delphi
[-]
type
TMyRecord = record
Data: array[0..255] of byte;
end;
...
var
R: TMyRecord;
S, Q: string;
begin
S := 'Hola Mundo!';
ZeroMemory(@R.Data[0], High(R.Data));
StrPLCopy(@R.Data[0], S, High(R.Data));
SetLength(Q, High(R.Data));
Move(R.Data[0], Q[1], High(R.Data));
ShowMessage(Q);
Ahora... yo no se para que utilizas el array de Bytes, pero viendo que lo quieres convertir a un string, supongo que estas almacenando cadenas de caracteres, o sea array de Chars no de Bytes. En ese caso el compilador te da una mano:
Código Delphi
[-]
TMyRecord = record
CharData: array[0..50] of char;
end;
...
var
R: TMyRecord;
begin
R.CharData := 'Hola Mundo!';
ShowMessage(R.CharData);
Pero... si verdaderamente necesitas que sea un array de bytes, para facilidad yo definiría el registro de la siguiente manera, teniendo apuntado ambos tipos de array al mismo sector de memoria:
Código Delphi
[-]
TMyRecord = record
case Integer of
0: (
ByteData: array[0..50] of byte;
);
1: (
CharData: array[0..50] of char;
);
end;
Saludos!