Einzelnen Beitrag anzeigen

Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Problem mit Observer-Pattern

  Alt 20. Mai 2005, 22:46
OK, ich hab den Übeltäter jetzt eingekreist. Es handelt sich definitiv um die ObserverUpdate-Methode wenn ich folgenden Code
Delphi-Quellcode:
procedure TDigitalClock.ObserverUpdate(const Observable: IUnknown);
var
  Obj: IClockTimer;

begin

  Observable.QueryInterface(IClockTimer, Obj);
  if Assigned(Obj) then
  begin
    Caption:= FormatDateTime('tt', obj.GetTime);
  end;
end;
durch diesen ersetze
Delphi-Quellcode:



procedure TDigitalClock.ObserverUpdate(const Observable: IUnknown);
var
  Obj: IClockTimer;

begin

  //Observable.QueryInterface(IClockTimer, Obj);
  //if Assigned(Obj) then
  //begin
    Caption:= FormatDateTime('tt', Now);
  //end;
end;


, dann tut alles. Kann mir jemand erklären, was in dieser Funktion vor sich geht?

Bisher habe ich 'QueryInterface' im Zusammenhang mit Schnittstellen noch nie gebraucht. Ist es so, dass ich damit das implementierende Objekt erzeugen kann ohne die Klasse zu kennen? Dann müsste doch in dem Moment, in dem QueryInterface ausgeführt wird auch das Create von TClockTimer ausgeführt werden. Dem scheint aber nicht so zu sein.

Ich wäre für etwas Nachhilfe dankbar.

Ciao



Ciao
This is a signature virus. Copy me to help me spread!
  Mit Zitat antworten Zitat