Hi shmia...
erst mal Danke für die Antwort. Ich komme aber dennoch nicht weiter.
Das ist der Code:
Delphi-Quellcode:
unit dxNavBarViewsFact;
interface
function dxNavBarViewsFactory: TdxNavBarViewsFactory;
implementation
var
FNavBarViewsFactory: TdxNavBarViewsFactory;
...
function dxNavBarViewsFactory: TdxNavBarViewsFactory;
begin
if FNavBarViewsFactory =
nil then
FNavBarViewsFactory := TdxNavBarViewsFactory.Create;
Result := FNavBarViewsFactory;
end;
...
initialization
finalization
FreeAndNil(FNavBarViewsFactory);
und die andere
Unit:
Delphi-Quellcode:
unit dxNavBarXPViews;
...
initialization
dxNavBarViewsFactory.RegisterView(dxNavBarXP1View, '
XP1View', TdxNavBarXP1Painter);
dxNavBarViewsFactory.RegisterView(dxNavBarXP2View, '
XP2View', TdxNavBarXP2Painter);
dxNavBarViewsFactory.RegisterView(dxNavBarXPExplorerBarView, '
XPExplorerBarView', TdxNavBarXPExplorerBarPainter);
finalization
dxNavBarViewsFactory.UnRegisterView(dxNavBarXP1View);
dxNavBarViewsFactory.UnRegisterView(dxNavBarXP2View);
dxNavBarViewsFactory.UnRegisterView(dxNavBarXPExplorerBarView);
Wenn Finalization der 1.
Unit zuerst ausgeführt wird, wird FNavBarViewsFactory: TdxNavBarViewsFactory zerstört und wieder erzeugt. Damit habe ich mein Memory Leak.
Ich begreife nur nicht, wie es in meinem Projekt funktioniert.
Mache ich neue Projekte und verwende die TdxNavBar, ist die Reihenfolge immer in Ordnung.
Na ja, hab scho an den Clientservice von DevExpress geschrieben. Bis jetzt war der Support immer kompetent.
Cu, Frank