Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Ereignisse werden nicht korrekt verteilt

  Alt 11. Okt 2014, 22:44
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;
fork me on Github
  Mit Zitat antworten Zitat