mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-21 05:19:10 +02:00
SqlDb: Prevent a crash when dropping TPQTEventMonitor on a form. Issue #39134, patch by CudaText man.
git-svn-id: trunk@65359 -
This commit is contained in:
parent
2c1bd0534e
commit
f19aac18a2
@ -14,6 +14,7 @@ type
|
|||||||
|
|
||||||
TPQTEventMonitor=class(TPQEventMonitor)
|
TPQTEventMonitor=class(TPQEventMonitor)
|
||||||
private
|
private
|
||||||
|
FInited:Boolean;
|
||||||
Timer:TTimer;
|
Timer:TTimer;
|
||||||
function GetPollInterval: integer;
|
function GetPollInterval: integer;
|
||||||
procedure OnTimer(Sender: TObject);
|
procedure OnTimer(Sender: TObject);
|
||||||
@ -34,7 +35,6 @@ implementation
|
|||||||
|
|
||||||
procedure TPQTEventMonitor.SetPollInterval(AValue: integer);
|
procedure TPQTEventMonitor.SetPollInterval(AValue: integer);
|
||||||
begin
|
begin
|
||||||
if Timer.Interval=AValue then Exit;
|
|
||||||
Timer.Interval:=AValue;
|
Timer.Interval:=AValue;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -50,8 +50,14 @@ end;
|
|||||||
|
|
||||||
constructor TPQTEventMonitor.Create(AOwner: TComponent);
|
constructor TPQTEventMonitor.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
try
|
||||||
Timer:=TTImer.Create(self);
|
inherited Create(AOwner);
|
||||||
|
FInited:=true;
|
||||||
|
except
|
||||||
|
//FPC code raises EInOutError in Create() if Postgres lib was not loaded
|
||||||
|
FInited:=false;
|
||||||
|
end;
|
||||||
|
Timer:=TTimer.Create(self);
|
||||||
Timer.Interval:=500;
|
Timer.Interval:=500;
|
||||||
Timer.Enabled:=false;
|
Timer.Enabled:=false;
|
||||||
Timer.OnTimer:=@OnTimer;
|
Timer.OnTimer:=@OnTimer;
|
||||||
@ -59,17 +65,20 @@ end;
|
|||||||
|
|
||||||
destructor TPQTEventMonitor.Destroy;
|
destructor TPQTEventMonitor.Destroy;
|
||||||
begin
|
begin
|
||||||
|
if not FInited then exit;
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPQTEventMonitor.RegisterEvents;
|
procedure TPQTEventMonitor.RegisterEvents;
|
||||||
begin
|
begin
|
||||||
|
if not FInited then exit;
|
||||||
inherited RegisterEvents;
|
inherited RegisterEvents;
|
||||||
Timer.Enabled:=true;
|
Timer.Enabled:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPQTEventMonitor.UnRegisterEvents;
|
procedure TPQTEventMonitor.UnRegisterEvents;
|
||||||
begin
|
begin
|
||||||
|
if not FInited then exit;
|
||||||
Timer.Enabled:=false;
|
Timer.Enabled:=false;
|
||||||
inherited UnRegisterEvents;
|
inherited UnRegisterEvents;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user