Hola Rofocale.
He probado el código y también me daba el mismo error. En mi caso me lo daba porque intentaba asignar valores (left y top) a propiedades readonly de componentes que no pertenecían a la clase TControl.
He cambiado el código y ya me funciona.
Código:
Código Delphi
[-]
procedure TPrincipal.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
var i:Integer;
var ClassRef: TClass;
var lEsControl:boolean;
begin
for i:= 0 to ComponentCount - 1 do begin
lEsControl:=False;
ClassRef := Components[i].ClassType;
while ClassRef <> nil do begin
if ClassRef = TControl then
lEsControl:=True;
ClassRef := ClassRef.ClassParent;
end;
if lEsControl then begin
TControl(Components[i]).Left:=
Round(NewWidth * TControl(Components[i]).Left / Principal.Width);
TControl(Components[i]).Top:=
Round(NewHeight * TControl(Components[i]).Top / Principal.Height);
end;
end;
end;
Espero que no sea demasiado tarde y te sirva el código.
Un saludo.