[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]