EAbstractError : Abstract method called
Bonjour,
Je mets en place un système d'événéments avec une file qui traite les différents ordres :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| TEvent = class
{ Type }
FType : string;
{ Description }
FDescription : string;
{ Execute order }
procedure Execute; virtual; abstract;
end;
{ TEventQueue }
TEventQueue = class
{ Queue }
FQueue : TList;
{ Class constructor }
constructor Create;
{ Add event }
procedure AddEvent(PEvent : TEvent);
{ Process each event in the queue }
procedure Execute;
end;
TTestEvent = class(TEvent)
constructor Create;
procedure Execute;
end;
var
TestEvent : TTestEvent;
EventQueue : TEventQueue;
constructor TTestEvent.Create;
begin
FType := 'TestEvent';
FDescription := 'Evénement de test';
end;
procedure TTestEvent.Execute;
begin
writeln('Un événément s''est produit : ' + FType + ' : '+ FDescription);
end;
initialization
{ #1 Créer EventQueue }
EventQueue := TEventQueue.Create;
{ #2 Ajouter un événement }
EventQueue.AddEvent(TTestEvent.Create);
EventQueue.Execute;
{ #3 Detruire Settings }
FreeAndNil(EventQueue); |
Mais l'exécution de l'événement donne une erreur :
Citation:
EAbstractError : Abstract method called