Delphi-Quellcode:
procedure Tfrm_Main.UpdateStatusBar;
var
Summary: IPlanDataEnumerator;
begin
Summary:=TMySummary.Create;
TMySummary(Summary).Init;
ProjectData.CallEnumeratorForAllElements(Summary);
StatusBar.Panels[1].Text:='Unassigned Order Packages: '+IntToStr(TMySummary(Summary).CountUnassignedOrderPackages);
StatusBar.Panels[2].Text:='Unassigned Orders: '+IntToStr(TMySummary(Summary).CountUnassignedOrders);
end;
Warum machst du das jetzt so?
Das harte casten auf die Klasse ist suboptimal.
Wenn du möchtest, dass ein klarer(er) Bezug zu IPlanDataEnumerator besteht kannst du es auch so schreiben:
Delphi-Quellcode:
procedure Tfrm_Main.UpdateStatusBar;
var
Summary: ISummary;
begin
Summary:=TMySummary.Create;
Summary.Init;
ProjectData.CallEnumeratorForAllElements(Summary as IPlanDataEnumerator ); // <<<<< Hier wird ISummary als IPlanDataEnumerator übergeben
StatusBar.Panels[1].Text:='Unassigned Order Packages: '+IntToStr(Round(Summary.GetSummaryResult));
end;