Pssst: Record ... kein Array (ja, ich weiß dass für Delphi Records auch nur Arrays mit nur einer Ebene sind, zumindestens bei den Funktionen zur Initialisierung des Speichers)
Jupp, aber wenn du den Record zerlegst, dann sind darin nur typen, die Delphi normal (einzeln und ohne Typ) auch übergeben kann.
Und hier ist der Record sogar genau mit einer typisierten String-Konstante identisch.
Delphi-Quellcode:
var
Form1: TForm1;
type
TMyRecord = {record
MyVar:} string;
{end;}
const
cMyRecord : TMyRecord = {(MyVar:} 'Hello world'{)};
type
TMyClass = class
public
procedure HelloWorld(const aMyVar: TMyRecord = cMyRecord);
end;
original: [DCC Fehler] E2268 Parameter dieses Typs dürfen keine Standardwerte haben
jetzt: [DCC Fehler] E2026 Konstantenausdruck erwartet
E2268 ergibt eigentlich keinen Sinn
und so lange die Typen übereinstimmen, ergibt E2026 auch keinen Sinn,
warum der Compiler sowas nach 25 Jahren immernoch nicht kann, gerade beim String
Pointer ist Pointer, und vor allem da sich hier Variable, Konstante und typisierte Konstante garnicht unterscheiden.