Forum: Object-Pascal / Delphi-Language
by Hepdepaddel,
30. Sep 2015
Sorry für den vielen Text - ich wollte nur den Hintergrund schildern, weswegen mir abgeleitete Interfaces nicht reichen und ich gerne auch auf Objektmethoden zugreifen würde.
Den Text von Nick kannte ich - das Buch liegt hier - aber der beschreibt leider nur die einfachen Fälle. Und dass Du die Variable als Interface deklariert hattest, hatte ich gesehen, das Casting fand ich nur unglücklich....
Forum: Object-Pascal / Delphi-Language
by Hepdepaddel,
24. Sep 2015
Entschuldige die späte Antwort - jetzt habe ich den Kopf wieder etwas frei.
Warum mache ich das... gute Frage. Das Problem ist, dass TMySummary eben ein umfangreiches Objekt ist, das mehrere unterschiedliche Interfaces implementieren sollte. Ich bin schon unglücklich, es als IPlanDataEnumerator zu deklarieren. Eigentlich müsste es heißen
var
Summary: TMySummary;
begin
...
Forum: Object-Pascal / Delphi-Language
by Hepdepaddel,
18. Sep 2015
Argh... gucken müsste man können. Freitag, wird Zeit fürs Wochenende.
Das funktioniert jetzt auch so:
procedure Tfrm_Main.UpdateStatusBar;
var
Summary: IPlanDataEnumerator;
begin
Summary:=TMySummary.Create;
Forum: Object-Pascal / Delphi-Language
by Hepdepaddel,
18. Sep 2015
Hi,
der Ansatz mit zwei Interfaces funktioniert leider nicht. Da beschwert sich der Compiler verständlicherweise über inkompatible Typen (ISummary und IPlanDataEnumerator).
TMySummary = class(TInterfacedObject, IPlanDataEnumerator, ISummary)
(...)
Forum: Object-Pascal / Delphi-Language
by Hepdepaddel,
18. Sep 2015
Erst einmal vielen Dank für die bisherigen Ratschläge! Hier noch die Deklaration von TMySummary
TMySummary = class(TInterfacedObject, IPlanDataEnumerator)
public
CountUnassignedOrderPackages, CountUnassignedOrders: Integer;
procedure Init;
procedure HandlePlanDataElement(PD: TPlanData);
end;
Forum: Object-Pascal / Delphi-Language
by Hepdepaddel,
18. Sep 2015
Hallo, zusammen,
offenbar habe ich das Prinzip von Interfaces und Reference-Counting noch nicht ganz verstanden - zumindest, wenn ich davon ausgehe, dass das Problem mal wieder vor dem Monitor steckt. Ich weiß, warum mein Ansatz nicht funktioniert, aber nicht, wie er funktionieren sollte.
Das Ziel: Ich habe eine Datenstruktur, die ich oft mit unterschiedlichen Aufgaben durchlaufen will....