Ich würde die procedure
TCustomControl.DispatchEvents
in zwei Methoden splitten, dann kann man besser testen.
Delphi-Quellcode:
procedure TCustomControl.DispatchSingleEvent(Event: TMEBEvent);
var ix: Integer;
begin
case Event.ofKbdEventKind of
evkKeyDown:
...
end;
procedure TCustomControl.DispatchEvents;
var Event: TMEBEvent;
begin
GetMEBEvent(Event);
DispatchSingleEvent(Event);
end;
Und einige Event künstlich erzeugen und testen
Delphi-Quellcode:
procedure TMyCustApp.TestRun;
var E1,E2,E3: TMEBEvent;
begin
...
AControl := TTestControl.Create(self);
// Test Tastendruck
E1.ofKbdEventKind := evkKeyDown;
E1.Event.ofKeyboard.VirtCode := VK_A;
AControl.DispatchSingleEvent(E1);
// Test Mausklick
E2... := ...;
AControl.DispatchSingleEvent(E2);
E3... := ...;
AControl.DispatchSingleEvent(E3);
...
end;