Creo que es responsable desmentir lo anterior. Sí es posible inicializar una variable record, sólo que es menester expresar el nombre de los campos:
Código Delphi
[-]Var
R1 :TRect = (Left : 0; Top : 0; Right :0; Bottom : 0);
Incluso puede ser inicializada sólo una parte:
Código Delphi
[-]Var
R2 :TRect = (Top : 10; Bottom : 100);
En cualquier caso, la mención de los campos debe ser en el mismo orden de su declaración, de lo contrario el compilador reportará un error.
Conviene añadir que, como cualquier otra inicialización de variable en su declaración, ésta no puede ser local. Por otra parte, una inicialización
en ceros es innecesaria, ya que todas las variables globales y sus campos están en blanco (0, Nil, '', ...) al comenzar la ejecución. Quizá a esto último se refiere Mendizabal, cuando dice:
Finalmente, decir que las variables globales suelen portar muchos estigmas (casi siempre producto de
dogmas), pero no tiene nada de malo usarlas cuando existe una razonable justificación.
Un saludo.