I thought I was getting closer to understanding
pointers but it appears that I'm still not getting it.
 I wrote the following code fragment but it doesn't
compile.  the errors I get are...

Widget_container_class.pas(80,27) Error: Illegal
qualifier
Widget_container_class.pas(88,23) Error: Illegal
qualifier
Widget_container_class.pas(88,29) Error: Illegal
expression
Widget_container_class.pas(88,29) Fatal: Syntax error,
";" expected but "(" found

I numbered lines 80 and 88 in comments so that the
error messages make sense.  (to the experienced
programmer like yourself :) )Please let me know if you
see what the problems are.  

{$H+}
unit Widget_container_class;
interface
uses
Attribute_class,Widget_class,Widget_entity_class,web;
type PWidgetList=^TWidgetList;
TWidgetList=record
        widget:pointer;
        next:PWidgetList;
end;

type PWidgetContainer=^TWidgetContainer;
TWidgetContainer=Object(TWidget)
        private 
                PCurWidget,PHeadWidget:PWidgetList;
                text:string;
        public  
                constructor init(ATag:string);  
                procedure Render();
                procedure SetText(str:string);
                function GetText():string;      
                procedure MoveFirstWidget();
                procedure MoveLastWidget();
                procedure AddWidget(PWidget:pointer);
                procedure RenderWidgets();
end;

procedure TWidgetContainer.RenderWidgets();
begin
        MoveFirstWidget();
        while (PCurWidget^.next <> nil) do
        begin
                PCurWidget^.widget:=PWidget(PCurWidget^.widget); //
cast the pointer to a widget pointer
                if (PCurWidget^.widget^.meta = 'ENTITY') then //
this is line 80
                begin
                
PCurWidget^.widget:=PWidgetEntity(PCurWidget^.widget);
                end
                else
                begin
                
PCurWidget^.widget:=PWidgetContainer(PCurWidget^.widget);
                end;
                PCurWidget^.widget^.Render(); //line 88
                PCurWidget:=PCurWidget^.next;
                dispose(PHeadWidget);
                PHeadWidget:=PCurWidget;                
        end;
end;

Ron_W


                
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 

_______________________________________________
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to