1

私はクラスを使ってクレジットカードに請求します。取引が処理されるたびに、カード番号や日付などのプロパティを変更して送信するだけです。

プロパティが正しく設定されておらず、古いカード番号を使用してトランザクションが実行されることがありました。ひどい。

したがって、これが再発しないように、クラス内のすべてのプロパティがデフォルトに戻っていることを確認したいと思います。作成したクラスを破棄して再作成するようなことを考えています。しかし、Delphiでそれを行う方法がわかりません。

これは私の現在のコードです:

if frmPayAware = nil then  
  Application.CreateForm(TfrmPayAware, frmPayAware);
  frmPayAware.ProcessCredit(eExpDate.Text,FTrack,eNameOnCard.Text,eCardNum.Text,0);
4

1 に答える 1

4

すべてのプロパティをクリアするclearメソッドを作成することもできます。または、用途ごとにフォームを作成できます。

var
  frm : TfrmPayAware;
begin
  frm := TfrmPayAware.Create(nil);
  try
    frm.ProcessCredit(eExpDate.Text,FTrack,eNameOnCard.Text,eCardNum.Text,0);
  finally
    frm.Release;
  end;
end;

個人的には、フォームが使用されるたびに同じ状態(作成されたばかり)であることが保証されるため、後者の方法を好みます。

無料vsリリース リリース、メッセージCM_RELEASEをフォームに投稿します。メッセージが処理されると(他のすべてのメッセージが処理された後)、Freeが呼び出されます。

于 2012-07-15T22:03:19.320 に答える