diff options
author | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2009-02-04 13:09:58 +0000 |
---|---|---|
committer | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2009-02-04 13:09:58 +0000 |
commit | 837d6ef5259b48a86af26d551a611285f6fffa38 (patch) | |
tree | f42bdb1deb0568ebb335383734b2e18eccd53f39 /src/corelib | |
parent | 4c590ac929e9df181a336701f870f4906297d8c4 (diff) | |
download | fpGUI-837d6ef5259b48a86af26d551a611285f6fffa38.tar.xz |
* added a custom user message constant.
* prevent AV when tooltip owner window is released.
* language update
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/fpg_base.pas | 4 | ||||
-rw-r--r-- | src/corelib/fpg_main.pas | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas index 979ac61a..15270468 100644 --- a/src/corelib/fpg_base.pas +++ b/src/corelib/fpg_base.pas @@ -81,6 +81,7 @@ const FPGM_MOVE = 16; FPGM_POPUPCLOSE = 17; FPGM_HINTTIMER = 18; + FPGM_CUSTOM = 50000; FPGM_KILLME = High(Integer); // The special keys, based on the well-known keyboard scan codes @@ -1145,8 +1146,7 @@ begin DoMoveWindow(x, y); end; -function TfpgWindowBase.WindowToScreen(ASource: TfpgWindowBase; - const AScreenPos: TPoint): TPoint; +function TfpgWindowBase.WindowToScreen(ASource: TfpgWindowBase; const AScreenPos: TPoint): TPoint; begin Result := DoWindowToScreen(ASource, AScreenPos); end; diff --git a/src/corelib/fpg_main.pas b/src/corelib/fpg_main.pas index 883c56c7..0bbb35f7 100644 --- a/src/corelib/fpg_main.pas +++ b/src/corelib/fpg_main.pas @@ -231,7 +231,7 @@ type procedure InternalMsgHintTimer(var msg: TfpgMessageRec); message FPGM_HINTTIMER; procedure CreateHintWindow; procedure HintTimerFired(Sender: TObject); - procedure SetShowHint(const AValue: boolean); + procedure SetShowHint(const AValue: boolean); protected FDisplayParams: string; FScreenWidth: integer; @@ -1075,8 +1075,15 @@ begin w := nil; // writeln('HintTimerFired...'); w := TfpgWidget(FHintWidget); - if Assigned(w) then - ActivateHint(w.WindowToScreen(w, FHintPos), w.Hint); + try + if Assigned(w) then + ActivateHint(w.WindowToScreen(w, FHintPos), w.Hint); + except + // silence it! + { TODO : FHintWidget probably went out of scope just as timer fired. Try + and detect such cases better! } + end; + FHintTimer.Enabled := False; end; |