Paul Ishenin wrote:
Martin wrote:
http://bugs.freepascal.org/view.php?id=14364 saving frames with anchorsides (or rather the inability of doing so)
Either we do something wrong with csInline flag or it is a but in the FPC.

Best regards,
Paul Ishenin.
Yes it is strange.....

I am down to
 rtl\objpas\classes\writer.inc
 line 599

  if (FAncestor is TComponent) then
      begin
      FAncestors:=TStringList.Create;
      if csInline in TComponent(FAncestor).ComponentState then
        FRootAncestor := TComponent(FAncestor);
      TComponent(FAncestor).GetChildren(@AddToAncestorList,FRootAncestor);
      FAncestors.Sorted:=True;
      end;
   try
     Component.GetChildren(@WriteComponent, FRoot);


A Frame has csInline => so Frame.Getchildren is called with FRootAncestor (which is the frame itself?)

But ALL the children are added to the AnchestorList => is that supposed to be?

Because then later:
 procedure TWriter.WriteComponent(Component: TComponent);
     DetermineAncestor(Component);

will find a random children there and that seems wrong.


Martin


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to