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; |
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); |
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; |
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; |
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; |