comp.lang.ada
 help / color / mirror / Atom feed
From: David Morton <dmorton@jinx.sckans.edu>
Subject: Re: Variant record assignment Q:
Date: 1996/07/10
Date: 1996-07-10T00:00:00+00:00	[thread overview]
Message-ID: <31E3A1FE.1DD3FFEE@jinx.sckans.edu> (raw)
In-Reply-To: 31E32A82.3984D09E@jinx.sckans.edu


David Morton wrote:
> 
> 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!)

whoops...  forgot to mention Ada95 here... gnat on Linux...

-- 
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...




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

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

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