Я прочитал этот вопрос, в котором обсуждается та же проблема , в любом случае я смог сделать это в Delphi 2009, и это было невозможно, когда я обновился до XE.
Я привожу здесь простой фиктивный пример: он компилируется в 2009 году и дает E2064 для XE ... Почему? Можно ли настроить XE на поведение как 2009? Или я должен пойти на обход?
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.