RAD Studio XE3で「チュートリアル:TAdapterBindSource と[LiveBinding デザイナ]を使用する」を実行するとエラーが発生した。
問題のコードは次の部分である。
procedure TForm1.AdapterBindSource1CreateAdapter(Sender: TObject;
var ABindSourceAdapter: TBindSourceAdapter);
var
LEmployee: TEmployee;
begin
LEmployee := TEmployee.Create('John', 'Anders', 26, StrToDate('10/10/2011'), 'Developer', 'Adrian Hermann');
ABindSourceAdapter := TObjectBindSourceAdapter<TEmployee>.Create(Self, LEmployee);
end;
日本語WindowsではStrToDateのところでEConvertErrorの例外が送出される。
引数の日付の書式を「10/10/2011」から「2011/10/10」に修正する。
プログラムを実行してフォームを閉じると、EInvalidPointerの例外が送出される。
TObjectBindSourceAdapter.Createの最初の引数をnilに変更する。(QualityCentral 110004)
修正したコードは次のようになる。
procedure TForm1.AdapterBindSource1CreateAdapter(Sender: TObject;
var ABindSourceAdapter: TBindSourceAdapter);
var
LEmployee: TEmployee;
begin
LEmployee := TEmployee.Create('John', 'Anders', 26, StrToDate('2011/10/10'), 'Developer', 'Adrian Hermann');
ABindSourceAdapter := TObjectBindSourceAdapter<TEmployee>.Create(nil, LEmployee);
end;
以上で、問題なく動作するようになった。