ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/journaling/runtime/nongui/IBCustomDataSet.pas
(Generate patch)

Comparing ibx/trunk/runtime/nongui/IBCustomDataSet.pas (file contents):
Revision 209 by tony, Wed Mar 14 12:48:51 2018 UTC vs.
Revision 214 by tony, Thu Mar 15 13:07:49 2018 UTC

# Line 301 | Line 301 | type
301      FDelayTimerValue: integer;
302      FTimer: TFPTimer;
303      procedure HandleRefreshTimer(Sender: TObject);
304 +    procedure SetDelayTimerValue(AValue: integer);
305    protected
306      procedure ActiveChanged; override;
307      procedure RecordChanged(Field: TField); override;
# Line 310 | Line 311 | type
311      constructor Create(ADataSet: TIBCustomDataSet);
312      destructor Destroy; override;
313      property DelayTimerValue: integer {in Milliseconds}
314 <            read FDelayTimerValue write FDelayTimerValue;
314 >            read FDelayTimerValue write SetDelayTimerValue;
315    end;
316  
317    TIBGeneratorApplyOnEvent = (gaeOnNewRecord,gaeOnPostRecord);
# Line 1410 | Line 1411 | begin
1411    inherited Create;
1412    FDataSet := ADataSet;
1413    FTimer := TFPTimer.Create(nil);
1414 +  {$IF FPC_FULLVERSION >= 30002}
1415    FTimer.Enabled := true;
1416 +  {$IFEND}
1417    FTimer.Interval := 0;
1418    FTimer.OnTimer := HandleRefreshTimer;
1419    FDelayTimerValue := 0;
# Line 1425 | Line 1428 | end;
1428  
1429   procedure TIBDataLink.HandleRefreshTimer(Sender: TObject);
1430   begin
1431 <  FTimer.Interval := 0;
1432 <  FDataSet.RefreshParams;
1431 >  FTimer.StopTimer;
1432 >  if FDataSet.Active then
1433 >    FDataSet.RefreshParams;
1434 > end;
1435 >
1436 > procedure TIBDataLink.SetDelayTimerValue(AValue: integer);
1437 > begin
1438 >  if FDelayTimerValue = AValue then Exit;
1439 >  FDelayTimerValue := AValue;
1440 >  FTimer.Interval := FDelayTimerValue;
1441   end;
1442  
1443   procedure TIBDataLink.ActiveChanged;
# Line 1445 | Line 1456 | procedure TIBDataLink.RecordChanged(Fiel
1456   begin
1457    if (Field = nil) and FDataSet.Active then
1458    begin
1459 +    {$IF FPC_FULLVERSION >= 30002}
1460      if FDelayTimerValue > 0 then
1461 <    begin
1450 <      FTimer.Interval := FDelayTimerValue;
1451 <      FTimer.StartTimer;
1452 <    end
1461 >      FTimer.StartTimer
1462      else
1463 +    {$IFEND}
1464        FDataSet.RefreshParams;
1465    end;
1466   end;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines