I am reading this question that was discussing the same problem , anyway, I was able to do it in Delphi 2009, and it was not possible since I was upgraded to XE.
I am inserting a simple example of dummy code here: this one compiles in 2009 and gives E2064 on XE ... Why? Is it possible to configure XE to behave in 2009? Or should I go a workaround?
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TTestRecord = record FirstItem : Integer; SecondItem : Integer; end; TForm2 = class(TForm) procedure AssignValues; private FTestRecord :TTestRecord; public property TestRecord : TTestRecord read FTestRecord write FTestRecord; end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.AssignValues; begin with TestRecord do begin FirstItem := 14; // this gives error in XE but not in 2009 SecondItem := 15; end; end; end.
source share