[Back to OOP SWAG index] [Back to Main SWAG index] [Original]

    {
    ±Hello.  I was toying around With TVision, trying to make derive an Object fr
    ±TDialog which would be a simple 'Delay box' (i.e. a message would display, t
    ±the box would cmOK itself after two seconds).  I tried a simple Delay() comm
    ±in HandleEvent, which seemed to work fine, but when I held down the mouse bu
    ±on the menu, it locked up and sometimes my memory manager woudl report crazy
    ±error messages.  Can anyone offer a suggestion on how to do this safely?  Th
    ±are certain situations when clicking an 'OK' button is just a hassle.  Thank

    Try trapping the mouse events in the HandleEvent method of the dialog
    box.
    }

    Type
      tDelayDialog = Object(tDialog)
        Procedure HandleEvent(Var Event : tEvent); VIRTUAL;
      end;

    Procedure tDelayDialog.HandleEvent(Var Event : tEvent);
    Const
      cDelay = 2000;
    begin
      if Event.What and evMouse <> 0 then (* This filters out mouse   *)
                                          (* events before they reach *)
                                          (* the parent               *)
      ELSE
      begin
        Delay(cDelay);
        Event.Command := cmOK;          (* Set up the command       *)
        INHERITED HandleEvent(Event);   (* Let the parent handle it *)
      end;
    end;

[Back to OOP SWAG index] [Back to Main SWAG index] [Original]