Mit einer reinen Zuweisung geht das eigentlich nicht, einen Trick gibt es aber. Ich denke mal das ganze sauber umzubauen (sprich von den Turbo Pascal Strukturen mit Records direkt in Dateien usw. wegkommen), wird im Moment nicht möglich sein, deshalb wird das wohl die sinnvollste Variante sein...
Das sieht dann so aus:
Delphi-Quellcode:
type
TFixedCharArray32 = record
Value: array[0..31] of Char; // 31 !!
class operator implicit(const AValue: string): TFixedCharArray32;
class operator implicit(const AValue: TFixedCharArray32): string;
end;
TMyRecord = record
Value: Integer;
Name: TFixedCharArray32;
end;
class operator TFixedCharArray32.implicit(const AValue: string): TFixedCharArray32;
begin
StrLCopy(Result.Value, PChar(AValue), 32);
end;
class operator TFixedCharArray32.implicit(const AValue: TFixedCharArray32): string;
begin
Result := AValue.Value;
end;
var
s: String;
m: TMyRecord;
begin
s := 'Test';
m.Name := s;
ShowMessage(m.Name);
ShowMessage('Größe: ' + IntToStr(SizeOf(m)) + ' (4 Byte Integer + 2 Byte * 32 Zeichen)');
end;