comp.lang.ada
 help / color / mirror / Atom feed
* Variant record assignment Q:
@ 1996-07-09  0:00 David Morton
  1996-07-10  0:00 ` David Morton
  1996-07-10  0:00 ` Jon S Anthony
  0 siblings, 2 replies; 4+ messages in thread
From: David Morton @ 1996-07-09  0:00 UTC (permalink / raw)



hello again...
given the specification:

   type String_Ptr is access all string;
   type Object_Type is (Field, Button);
   type Object;
   type Object_Ptr is access Object;
   type Object(Obj : Object_Type) is
      record
     Status : Object_Type;
	 Next, Prev : Object_Ptr;
	 case Obj is
	    when Field =>
	       Label_X, Label_Y, Field_X, Field_Y, Buffer_Size, Max_Buffer_Size : natural;
	       Buffer : String_Ptr;
	       Field_Name : String_Ptr;
	    when Button =>
	       X, Y : natural;
	       Name : String_Ptr;
	       Status_Code : Return_Code;
	 end case;
      end record;

What's the quickest way to instantiate this?
I would like to be able to say,

Tmp : String_Ptr;
Root : Object_Ptr; 

Tmp := new String("test");
Root := new Object(Button)'(Status => Button, X => 10, Y => 10, Name => Tmp, Status =>
Something);

but I get errors, both with the string and record instantiations.
I've tried several variations, but no better...

One particular error I tend to get (that is confusing me)is:


Tmp := new String'("test");

Root := new Object(Obj => Button); -- line 24 BTW
Root.all := (Status => Button, X => 10,Y => 10, Name => Tmp, Status_Code => This); 

user_info_management.adb:25:13: no value supplied for discriminant "Obj"

Thanks for any help!

(I'll figure this stuff out yet!)
-- 
David Morton
 mailto:dmorton@jinx.sckans.edu   http://www.sckans.edu/~dmorton/
 205 College, Winfield, KS 67156    
 This signature will self-destruct in 10 seconds...




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1996-07-11  0:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-07-09  0:00 Variant record assignment Q: David Morton
1996-07-10  0:00 ` David Morton
1996-07-11  0:00   ` Steve O'Neill
1996-07-10  0:00 ` Jon S Anthony

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox