1

我使用一个类来为信用卡充值;每次处理交易时,我只需更改卡号和日期等属性并提交。

碰巧属性设置不正确,交易使用旧卡号进行。糟糕的。

所以为了防止这种情况再次发生,我想确保类中的所有属性都恢复为默认值。我正在考虑处理创建的类并重新创建它。但我不确定如何在 Delphi 中做到这一点。

这是我当前的代码:

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

1 回答 1

4

您可以创建一个清除所有属性的清除方法。或者您可以为每次使用创建表单:

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

就个人而言,我更喜欢后一种方法,因为它确保每次使用表单时,它都处于相同的状态(刚刚创建)。

免费与发布 发布,将消息 CM_RELEASE 发布到表单。如果消息已处理(在处理所有其他消息之后),则调用 Free。

于 2012-07-15T22:03:19.320 回答