在俩个pas文件中****************************************************
main.pas
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Procedure TForm1.NotifyScroll;
var
aUs:TUpdateStatus;
Begin
aUs:=DataModule1.ADODataSet1.UpdateStatus ;
if (aUs = usUnmodified ) then
FillStatus( true,false,false,false)
else if (aUs = usModified ) then
FillStatus(false ,true ,false ,false )
else
if (aUs = usInserted ) then
FillStatus(false ,false ,true ,false )
else
if (aUs = usDeleted ) then
FillStatus(false ,false ,false ,true );end;********************************************************************
unit.pas
+++++++++++++++++++++++++++++++++++++++++++
procedure TDataModule1.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
(×) Tform1.NotifyScroll;end;
===================================================编译时提示:[Error] Unit1.pas(29): This form of method call only allowed for class methods
就是指 (×)这条语句有错。这到底是什么错呢?
main.pas
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Procedure TForm1.NotifyScroll;
var
aUs:TUpdateStatus;
Begin
aUs:=DataModule1.ADODataSet1.UpdateStatus ;
if (aUs = usUnmodified ) then
FillStatus( true,false,false,false)
else if (aUs = usModified ) then
FillStatus(false ,true ,false ,false )
else
if (aUs = usInserted ) then
FillStatus(false ,false ,true ,false )
else
if (aUs = usDeleted ) then
FillStatus(false ,false ,false ,true );end;********************************************************************
unit.pas
+++++++++++++++++++++++++++++++++++++++++++
procedure TDataModule1.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
(×) Tform1.NotifyScroll;end;
===================================================编译时提示:[Error] Unit1.pas(29): This form of method call only allowed for class methods
就是指 (×)这条语句有错。这到底是什么错呢?
unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, ExtCtrls, DBCtrls, ADODB, StdCtrls, Menus;type
TForm1 = class(TForm)
DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Link1: TMenuItem;
Break1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
RadioGroup3: TRadioGroup;
ckusUnmodified: TRadioButton;
ckusModified: TRadioButton;
ckusInserted: TRadioButton;
ckusDeleted: TRadioButton;
procedure RadioButtonClick(Sender: TObject);
procedure Link1Click(Sender: TObject);
procedure Break1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
Procedure NotifyScroll;
Procedure FillStatus(ck1,ck2,ck3,ck4:Boolean);
private
{ Private declarations
}
public
{ Public declarations }
(*procedure TForm1.RadioButtonClick(Sender: TObject); *)
end;var
Form1: TForm1;implementationuses Unit1;{$R *.dfm}procedure TForm1.RadioButtonClick(Sender: TObject);
begin
case Tcomponent(Sender).Tag of
0:
begin
if ((datamodule1.ADODataSet1.LockType= ltBatchOptimistic) and
(dataModule1.AdodataSet1.active = true)) then
begin
dataModule1.ADODataSet1.Filtered:=true;
datamodule1.ADODataSet1.FilterGroup:=fgNone;
end;
end;
1:
if((dataModule1.ADODataSet1.LockType =ltBatchOptimistic) and
(dataModule1.AdodataSet1.active = true) ) then
begin
datamodule1.ADODataSet1.Filtered:=true;
datamodule1.ADODataSet1.FilterGroup:=fgPendingRecords;
end;
end ;
end ;procedure TForm1.Link1Click(Sender: TObject);
begin
DataModule1.ADODataSet1.Active:=true;end;procedure TForm1.Break1Click(Sender: TObject);
begin Datamodule1.ADODataSet1.Active:=false;
end;procedure TForm1.N6Click(Sender: TObject);
begin
DataModule1.AdoDataSet1.UpdateBatch;
end;procedure TForm1.N7Click;
begin
DataModule1.ADODataSet1.CancelBatch;
end;Procedure TForm1.NotifyScroll(Sender: TObject);
var
aUs:TUpdateStatus;
Begin
aUs:=DataModule1.ADODataSet1.UpdateStatus ;
if (aUs = usUnmodified ) then
FillStatus( true,false,false,false)
else if (aUs = usModified ) then
FillStatus(false ,true ,false ,false )
else
if (aUs = usInserted ) then
FillStatus(false ,false ,true ,false )
else
if (aUs = usDeleted ) then
FillStatus(false ,false ,false ,true );end;Procedure TForm1.FillStatus(ck1,ck2,ck3,ck4:Boolean);
Begin
ckusUnmodified.Checked:=ck1;
ckusModified.Checked:=ck2;
ckusInserted.Checked:=ck3;
ckusDeleted.Checked:=ck4;
end ;
end.
unit Unit1;interfaceuses
SysUtils, Classes, DB, ADODB;type
TDataModule1 = class(TDataModule)
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
procedure ADODataSet1AfterScroll(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;var
DataModule1: TDataModule1;implementation uses main;
{$R *.dfm}
procedure TDataModule1.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
Tform1.NotifyScroll;(程序老是说这语句有错,为什么?)end;end.
unit Unit1;interfaceuses
SysUtils, Classes, DB, ADODB, main;