Hola,
El error que comentas se da cuando tratas de asignar un valor a una variable que únicamente puede leerse, no escribirse. En todo caso, haciendo alguna prueba con el código que has expuesto, y, limitándonos a lo que nos ocupa, no he podido reproducir el error que dices:
Código Delphi
[-]
unit Unit1;
interface
uses
Forms, Classes, Controls, StdCtrls, Graphics;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
type
TTipoGrafico = record
Tipo : Integer;
Trazo : byte;
ColorSerie: TColor;
end;
TPGSeries = class
private
FGrafico: TTipoGrafico;
FItem: Integer;
public
property Grafico: TTipoGrafico read FGrafico write FGrafico;
property Item: Integer read FItem write FItem;
constructor Create;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
SysUtils, Dialogs;
constructor TPGSeries.Create;
begin
inherited;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
PGSeries: TPGSeries;
begin
PGSeries := TPGSeries.Create;
try
PGSeries.FGrafico.Tipo := 1;
ShowMessage( IntToStr ( PGSeries.FGrafico.Tipo ) );
finally
PGSeries.Free;
end;
end;
end.