Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Verständnisfrage: Interface und dazugehöriges Objekt

  Alt 23. Aug 2012, 17:53
Also so sieht es eigentlich aus, musste aber Firmenspezifische Abkürzungen von ein paar Bezeichnern entfernen.
Die Kommentare sind von mir für euch zur Erklärung!

Delphi-Quellcode:
class function TNotifyEventContainer.CreateContainer(ANotification : HNotification; AExtMedium : IAExtMedium) : IEventContainer;
var
  EventType : IEventType;
  Event : TNotifyEventContainer; //IEventContainer;
begin
  Result := nil;
  if Assigned(AExtMedium) then
  begin
    //in diesem Create steckt ein "leeres" Try-Except mit nur OutputDebugString um den Konstruktur-Code
    Event := TNotifyEventContainer.Create(ANotification, AExtMedium.GetAliasName, AExtMedium.GetGuid);    
   
   //FindEventType ist eine flache Funktion in der Unit.
   //GetEventTypes liefert eine IInterfaceList.
   //EventType ist ein out-Parameter, die Funktion sucht in der Liste anhand
   //von GetEventTypeID das betreffende IEventType in der IInterfaceList und gibt es zurück
    if Assigned(Event) and FindEventType(AExtMedium.GetEventTypes, Event.GetEventTypeID, EventType) then
    begin
      //setzt nur EventType als Field-Variable von TNotifyEventContainer
     Event.SetEventType(EventType);    
    end;
 
    Result := Event;
  end;
end;
Zur meiner Verteidigung muss ich sagen, dass das nicht von mir, sondern von meinen Vorgänger stammt.
Ich wäre hierrüber auch nie gestoßen, hätte ich nicht manchmal merkwürdige Effekte/Fehlermeldungen, seitdem ich FastMM4 installiert habe.
Der alte Speichermanager hatte wahrscheinlich beide Augen zugedrückt.

Geändert von TiGü (23. Aug 2012 um 18:02 Uhr)
  Mit Zitat antworten Zitat