comp.lang.ada
 help / color / mirror / Atom feed
From: David Morton <dmorton@jinx.sckans.edu>
Subject: Variant record assignment Q:
Date: 1996/07/09
Date: 1996-07-09T00:00:00+00:00	[thread overview]
Message-ID: <31E32A82.3984D09E@jinx.sckans.edu> (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...




             reply	other threads:[~1996-07-09  0:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-07-09  0:00 David Morton [this message]
1996-07-10  0:00 ` Variant record assignment Q: David Morton
1996-07-11  0:00   ` Steve O'Neill
1996-07-10  0:00 ` Jon S Anthony
replies disabled

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