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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,1a52c822fc0dbb23 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!postnews.google.com!q75g2000hsh.googlegroups.com!not-for-mail From: Adam Beneschan Newsgroups: comp.lang.ada Subject: Re: Rational for not making cursor tagged in Containers Date: 23 Apr 2007 10:38:06 -0700 Organization: http://groups.google.com Message-ID: <1177349886.343834.295210@q75g2000hsh.googlegroups.com> References: <1176998738.656903.141250@q75g2000hsh.googlegroups.com> <1177010938.200523.325290@p77g2000hsh.googlegroups.com> <1a8y2vakorfhx.225uqh4hifpd$.dlg@40tude.net> <1xmzi7newnilp.23m3zze8h9yi.dlg@40tude.net> <1177066583.5876.30.camel@localhost.localdomain> <1177080147.5876.87.camel@localhost.localdomain> <1q1kx2jlcvnuj.ck0711mj4few$.dlg@40tude.net> <1177097829.26685.36.camel@localhost.localdomain> <95wmj9goo6wc$.13f1j4dnadwws$.dlg@40tude.net> NNTP-Posting-Host: 66.126.103.122 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Trace: posting.google.com 1177349886 30077 127.0.0.1 (23 Apr 2007 17:38:06 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 23 Apr 2007 17:38:06 +0000 (UTC) In-Reply-To: <95wmj9goo6wc$.13f1j4dnadwws$.dlg@40tude.net> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.12) Gecko/20050922 Fedora/1.7.12-1.3.1,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: q75g2000hsh.googlegroups.com; posting-host=66.126.103.122; posting-account=cw1zeQwAAABOY2vF_g6V_9cdsyY_wV9w Xref: g2news1.google.com comp.lang.ada:15235 Date: 2007-04-23T10:38:06-07:00 List-Id: On Apr 20, 3:14 pm, "Dmitry A. Kazakov" wrote: > > But please explain what use is a Boolean with discriminants. > > I'm not sure... > > type GUI_Boolean (Defined : Boolean := True) is (False, True); > > When Defined = False, the value is rendered as blank and the user is forced > to enter it before it closes the dialog box. X, Y : GUI_Boolean; If you say X = Y, does it compare just the values, or does it compare the discriminants also? If it compares the discriminants, what do you write when you want to compare just the values, without caring what the discriminants happen to be? What does "X = True" mean? Does X.Defined have any effect on the value of this expression? OK, X is a GUI_Boolean that has Defined=false. You now want to create Y to be a GUI_Boolean that has the same value as X but Defined=true. How do you write that, given that Ada does not let you put a discriminant on the left side of an assignment? There are lots of syntactic and semantic issues involved with sticking a discriminant on a scalar that you probably haven't thought through. I agree with Randy---that way lies madness, or at the very least a severe migraine. Thank you, but I think I'll stick to type My_Boolean_Value is (False, True); type GUI_Boolean (Defined : Boolean := True) is record Val : My_Boolean_Value; end record; At least I know what I'm doing if I use this type. If X is a GUI_Boolean, then X refers to the whole record and X.Val refers to just the value. Nice, simple, easy to understand. -- Adam