RAD Studio XE3で「チュートリアル:TAdapterBindSource と[LiveBinding デザイナ]を使用する」を実行したときのエラーを修正する。

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;

以上で、問題なく動作するようになった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください