[fpc-devel] csInlin how is it suppossed to work?
Martin
lazarus at mfriebe.de
Sun Aug 16 20:20:19 CEST 2009
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
More information about the fpc-devel
mailing list