我用一个班级来收取信用卡;每次处理交易时,我只需更改卡号和日期等属性并提交。
碰巧没有正确设置属性,并且使用旧卡号进行交易。可怕。
因此,为了防止再次发生这种情况,我想确保类中的所有属性都恢复为默认值。我正在考虑处理创建的类并重新创建它。但我不知道如何在Delphi中做到这一点。
这是我目前的代码:
if frmPayAware = nil then
Application.CreateForm(TfrmPayAware, frmPayAware);
frmPayAware.ProcessCredit(eExpDate.Text,FTrack,eNameOnCard.Text,eCardNum.Text,0);
答案 0 :(得分: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。