anchor.diff:    TfpgGDIApplication = class(TfpgApplicationBase)
     private
       FDrag: TfpgGDIDrag;
  +    procedure   DoWakeMainThread(Sender: TObject);
       procedure   SetDrag(const AValue: TfpgGDIDrag);
       property    Drag: TfpgGDIDrag read FDrag write SetDrag;
     protected
  
positive.code:   Result.Sort;
  end;
  
  procedure TfpgGDIApplication.SetDrag(const AValue: TfpgGDIDrag);
  begin
    if Assigned(FDrag) then
  
negative.code: 
    FIsInitialized := True;
    wapplication   := TfpgApplication(self);
    WakeMainThread := @DoWakeMainThread;
  end;
  
  destructor TfpgGDIApplication.Destroy;
  begin
    WakeMainThread := nil;
    if Assigned(FDrag) then
      FDrag.Free;
    UnhookWindowsHookEx(ActivationHook);
  