From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,769e61538eb61436 X-Google-Attributes: gid103376,public From: Steve O'Neill Subject: Re: Variant record assignment Q: Date: 1996/07/11 Message-ID: <31E5271A.6B67@sanders.lockheed.com>#1/1 X-Deja-AN: 167793349 references: <31E32A82.3984D09E@jinx.sckans.edu> <31E3A1FE.1DD3FFEE@jinx.sckans.edu> content-type: text/plain; charset=us-ascii organization: Sanders, A Lockheed-Martin Company mime-version: 1.0 newsgroups: comp.lang.ada x-mailer: Mozilla 2.01 (Win16; I) Date: 1996-07-11T00:00:00+00:00 List-Id: David Morton wrote: > 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, x_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; > > One particular error I tend to get (that is confusing me)is: > > 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" That's because Obj (the discriminant) is also part of the record and must be assigned a value. So the assignment would be: Root.all := (Obj => Button, Status => Button, Next => Something, Previous => Something, X => 10,Y => 10, Name => Tmp, Status_Code => This); Assuming valid values for Something, Tmp and This, of course. Perhaps this is what you had in mind by having the Status component. -- Steve O'Neill | "No,no,no, don't tug on that! Sanders, A Lockheed Martin Company | You never know what it might smoneill@sanders.lockheed.com | be attached to." (603) 885-8774 fax: (603) 885-4071| Buckaroo Banzai