Hi Graeme,
I don't have any quick fix but have a possible solution requiring changes to
TtiVisited:
TtiVisited = class(TtiBaseObject)
protected
// add:
CanVisitCandidate(const APropName: string; const ACandidate: TtiVisited):
boolean; virtual;
end;
TtiVisited.CanVisitCandidate(const APropName: string; const ACandidate:
TtiVisited): boolean;
begin
// Override in descendant to selectively allow visitor recursion
result := true;
end;
procedure TtiVisited.IterateRecurse(...);
// change:
if (LCandidate is TtiVisited) then
// to:
if (LCandidate is TtiVisited) and
(CanVisitCandidate(LClassPropNames.Strings[i], LCandidate as
TtiVisited)) then
TLearner = class(TtiObject)
protected
CanVisitCandidate(const APropName: string; const ACandidate: TtiVisited):
boolean; override;
end;
TLearner.CanVisitCandidate(const APropName: string; const ACandidate:
TtiVisited): boolean;
begin
result := (inherited CanVisitCandidate(APropName, ACandidate)) and
(APropName <> 'BillingAddress');
// or:
// (not (ACandidate is TAddress));
end;
Regards,
Jarrod Hollingworth
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
tiOPF-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tiopf-talk