mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 08:06:06 +02:00
* Call TDatalink.LayoutChanged when controls are disabled and dataset closed/opened. Bug #16428 + test
git-svn-id: trunk@15422 -
This commit is contained in:
parent
194855eee0
commit
6a6ab2a392
@ -254,6 +254,7 @@ begin
|
||||
deFieldChange : HandleFieldChange(TField(Info));
|
||||
deDataSetChange,
|
||||
deDataSetScroll : HandleScrollOrChange;
|
||||
deLayoutChange : FEnableControlsEvent:=deLayoutChange;
|
||||
end;
|
||||
|
||||
if not ControlsDisabled then begin
|
||||
@ -1062,6 +1063,7 @@ begin
|
||||
else
|
||||
begin
|
||||
DoBeforeOpen;
|
||||
FEnableControlsEvent:=deLayoutChange;
|
||||
FInternalCalcFields:=False;
|
||||
try
|
||||
FDefaultFields:=FieldCount=0;
|
||||
|
@ -71,6 +71,7 @@ type
|
||||
procedure TestMove; // bug 5048
|
||||
procedure TestActiveBufferWhenClosed;
|
||||
procedure TestEOFBOFClosedDataset;
|
||||
procedure TestLayoutChangedEvents;
|
||||
procedure TestDataEventsResync;
|
||||
procedure TestBug7007;
|
||||
procedure TestBug6893;
|
||||
@ -267,9 +268,9 @@ begin
|
||||
|
||||
Next;
|
||||
if (i > ABufferCount) and not EOF then
|
||||
AssertEquals('deCheckBrowseMode:0;deDataSetScroll:-1;DataSetScrolled:1;',DataEvents)
|
||||
AssertEquals('deCheckBrowseMode:0;deDataSetScroll:-1;DataSetScrolled:1;DataSetChanged;',DataEvents)
|
||||
else
|
||||
AssertEquals('deCheckBrowseMode:0;deDataSetScroll:0;DataSetScrolled:0;',DataEvents);
|
||||
AssertEquals('deCheckBrowseMode:0;deDataSetScroll:0;DataSetScrolled:0;DataSetChanged;',DataEvents);
|
||||
DataEvents := '';
|
||||
end;
|
||||
AssertEquals(count,i-1);
|
||||
@ -335,6 +336,37 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestDBBasics.TestLayoutChangedEvents;
|
||||
var aDatasource : TDataSource;
|
||||
aDatalink : TDataLink;
|
||||
ds : tdataset;
|
||||
|
||||
begin
|
||||
aDatasource := TDataSource.Create(nil);
|
||||
aDatalink := TTestDataLink.Create;
|
||||
try
|
||||
aDatalink.DataSource := aDatasource;
|
||||
ds := DBConnector.GetNDataset(6);
|
||||
aDatasource.DataSet:=ds;
|
||||
with ds do
|
||||
begin
|
||||
open;
|
||||
|
||||
DataEvents := '';
|
||||
DisableControls;
|
||||
Active:=False;
|
||||
Active:=True;
|
||||
EnableControls;
|
||||
AssertEquals('deLayoutChange:0;DataSetChanged;',DataEvents);
|
||||
|
||||
close;
|
||||
end;
|
||||
finally
|
||||
aDatasource.Free;
|
||||
aDatalink.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestDBBasics.TestDataEventsResync;
|
||||
var i,count : integer;
|
||||
aDatasource : TDataSource;
|
||||
@ -354,10 +386,10 @@ begin
|
||||
open;
|
||||
DataEvents := '';
|
||||
Resync([rmExact]);
|
||||
AssertEquals('deDataSetChange:0;',DataEvents);
|
||||
AssertEquals('deDataSetChange:0;DataSetChanged;',DataEvents);
|
||||
DataEvents := '';
|
||||
next;
|
||||
AssertEquals('deCheckBrowseMode:0;DataEvent;deDataSetScroll:0;DataSetScrolled:1;',DataEvents);
|
||||
AssertEquals('deCheckBrowseMode:0;DataEvent;deDataSetScroll:0;DataSetScrolled:1;DataSetChanged;',DataEvents);
|
||||
close;
|
||||
end;
|
||||
finally
|
||||
@ -2040,7 +2072,7 @@ begin
|
||||
|
||||
DataEvents := '';
|
||||
query1.append;
|
||||
AssertEquals('deCheckBrowseMode:0;deUpdateState:0;deDataSetChange:0;',DataEvents);
|
||||
AssertEquals('deCheckBrowseMode:0;deUpdateState:0;deDataSetChange:0;DataSetChanged;',DataEvents);
|
||||
AssertEquals(5, datalink1.ActiveRecord);
|
||||
AssertEquals(6, datalink1.RecordCount);
|
||||
AssertEquals(6, query1.RecordCount);
|
||||
@ -2048,7 +2080,7 @@ begin
|
||||
|
||||
DataEvents := '';
|
||||
query1.cancel;
|
||||
AssertEquals('deCheckBrowseMode:0;deUpdateState:0;deDataSetChange:0;',DataEvents);
|
||||
AssertEquals('deCheckBrowseMode:0;deUpdateState:0;deDataSetChange:0;DataSetChanged;',DataEvents);
|
||||
AssertEquals(5, datalink1.ActiveRecord);
|
||||
AssertEquals(6, datalink1.RecordCount);
|
||||
AssertEquals(6, query1.RecordCount);
|
||||
|
@ -75,6 +75,7 @@ type
|
||||
TTestDataLink = class(TDataLink)
|
||||
protected
|
||||
procedure DataSetScrolled(Distance: Integer); override;
|
||||
procedure DataSetChanged; override;
|
||||
{$IFDEF fpc}
|
||||
procedure DataEvent(Event: TDataEvent; Info: Ptrint); override;
|
||||
{$ELSE}
|
||||
@ -293,6 +294,12 @@ begin
|
||||
inherited DataSetScrolled(Distance);
|
||||
end;
|
||||
|
||||
procedure TTestDataLink.DataSetChanged;
|
||||
begin
|
||||
DataEvents := DataEvents + 'DataSetChanged;';
|
||||
inherited DataSetChanged;
|
||||
end;
|
||||
|
||||
procedure TTestDataLink.DataEvent(Event: TDataEvent; Info: Ptrint);
|
||||
{$ELSE}
|
||||
procedure TTestDataLink.DataEvent(Event: TDataEvent; Info: Longint);
|
||||
|
Loading…
Reference in New Issue
Block a user