[comp.lang.pascal] OOPS problems

gt3070b@prism.gatech.EDU (Jeff Watkins) (12/27/89)

I am trying to use procedure type variables inside an object definition.
such as:
MyObject= object
	Proc1:	Procedure;
	Proc2:	Procedure;
	Proc3:	Procedure;

	Procedure	DoSumthing;
	procedure	DoSumThingelse;
	Procedure	DoYetAnotherThing;
end;

when I try to assign proc1:=DoSumthing TP5.5 says "invalid procedure reference"
and looking in the map files, all procedures inside an object are "private".

no manipulation of the far call flags helps...

Any ideas??
I'm kind of caught in a snag, here.  The application was 2weeks ahead of
schedule, simply because I took the time to use objects; but now, I may have
to recode it entirely because objects just don't cut it...

HELP!?!?!

Thanks in advance...
Jeff


-- 
Jeff Watkins
Georgia Tech   (Internet: gt3070b@prism.gatech.edu)
Access Radio   (Office: (407)334-5000   Fax: (407)334-3445)

jacobs@chocolate.it.udel.edu (michael jacobs) (12/28/89)

In article <4516@hydra.gatech.EDU> gt3070b@prism.gatech.EDU (Jeff Watkins) writes:
=>I am trying to use procedure type variables inside an object definition.
=>such as:
=>MyObject= object
=>	Proc1:	Procedure;
=>	Proc2:	Procedure;
=>	Proc3:	Procedure;
=>
=>	Procedure	DoSumthing;
=>	procedure	DoSumThingelse;
=>	Procedure	DoYetAnotherThing;
=>end;
=>
=>when I try to assign proc1:=DoSumthing TP5.5 says "invalid procedure reference"

Make Proc1,2,&3 pointers to procedures, and say proc1:=@DoSumThing.

It probably didn't like your calls because it would be making a copy of the 
procedure, and if you wanted to run it later, it would have to run a procedure
that is in the stack segment instead of the code segment.  so they avoid it
altogether by not allowing it.



Mike J             |  
The Grey Sysop...  |  Phone...RING!...yep yep yep yep yep!
                   |