第一次点击没问题,再点击一次按钮会运行2次。procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   if ClientDataSet1.Active then ClientDataSet1.Active :=not           ClientDataSet1.Active;
   ClientDataSet1.Active :=true;
end;
如果所输入的名字与密码不对,第一次点击时弹出对话框一次,不做任何修改点,这时会弹出二次对话框.单步执行发现第二次点击时运行到
ClientDataSet1.Active :=not ClientDataSet1.Active;
也去执行aftergetrecords及BeforeGetRecords这二个事件?怎么办?
在aftergetrecords及BeforeGetRecords里有这样写procedure TForm1.ClientDataSet1BeforeGetRecords(Sender: TObject;
  var OwnerData: OleVariant);
begin
   OwnerData:=   VARARRAYOF([EDIT1.TEXT,EDIT2.TEXT]);
end;procedure TForm1.ClientDataSet1AfterGetRecords(Sender: TObject;
  var OwnerData: OleVariant);
begin
   If OwnerData[0]=False then
      showmessage('昵称或密码不对!')
   Else Begin
      showmessage('哦,对了!')
   End;
end;