comp.lang.ada
 help / color / mirror / Atom feed
From: Ray Blaak <blaak@infomatch.com>
Subject: Re: From extended Pascals to Ada 95 guide
Date: 2000/08/28
Date: 2000-08-28T00:00:00+00:00	[thread overview]
Message-ID: <u8zthkvnz.fsf@infomatch.com> (raw)
In-Reply-To: 39AA8FFB.C9549B55@easystreet.com

Al Christians <achrist@easystreet.com> writes:
> If I define my own type in a Pascal program and want to save it in
> one of the VCL containers, the code would look like this:
> 
>     { To Insert }      AContainer.Objects[i] := Pointer(MyObject);
>     { To Retrieve }    MyObject := TMyObject(AContainer.Objects[i]);
> 

With Delphi, I have always found it worthwhile to make my own container
classes that do the appropriate checking:

type MyContainer = class
public
   procedure Insert(atIndex : Integer; obj : MyObject);
   function GetAt(index : Integer) : MyObject;
private
   flist : TList;
end;

where we have:

procedure MyContainer.Insert(atIndex : Integer; obj : MyObject);
begin
  flist.Items[i] := Pointer(obj);
end;

function MyContainer.GetAt(index : Integer) : MyObject;
begin
  result := MyObject(flist.Items[i]);
end;

and then I can do:
   
   AContainer.Insert(i, MyObject);
   MyObject := AContainer.GetAt(i);

Now I have the benefit of good typechecking. The one disadvantage of this
approach is that Delphi's lack of generics can mean constructing these wrapper
classes is tedious. However, the benefit outweighs the tedium, in my opinion.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
blaak@infomatch.com                            The Rhythm has my soul.




  reply	other threads:[~2000-08-28  0:00 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-08-24  0:00 From extended Pascals to Ada 95 guide gdemont
2000-08-24  0:00 ` James Smith
2000-08-24  0:00   ` ODRe: " Richard Riehle
2000-08-29  0:00     ` James Smith
2000-08-30  0:00       ` Marco van de Voort
2000-08-25  0:00   ` Tarjei T. Jensen
2000-08-25  0:00   ` Gautier
2000-08-25  0:00     ` Preben Randhol
2000-08-25  0:00       ` Pat Rogers
2000-08-25  0:00         ` Marin D. Condic
2000-08-25  0:00           ` Pat Rogers
2000-08-26  0:00             ` Marin D. Condic
2000-08-25  0:00           ` Larry Elmore
2000-08-26  0:00             ` Marin D. Condic
2000-08-27  0:00               ` David Botton
2000-08-27  0:00                 ` Marin D. Condic
2000-08-27  0:00                   ` David Botton
2000-08-28  0:00                     ` Marin D. Condic
2000-08-27  0:00                   ` tmoran
     [not found]                     ` <017801c0105d$06e88ac0$cf18b70a@db2000>
2000-08-27  0:00                       ` tmoran
2000-08-28  0:00                         ` Marin D. Condic
2000-08-28  0:00                       ` Larry Kilgallen
2000-08-28  0:00                     ` Marin D. Condic
2000-08-29  0:00                       ` Gautier
2000-09-06  0:18                   ` John English
2000-08-28  0:00               ` Ray Blaak
2000-08-26  0:00             ` Dimmy Timchenko
2000-08-26  0:00           ` Robert C. Leif, Ph.D.
2000-08-25  0:00     ` Marco van de Voort
2000-08-25  0:00       ` Gautier
2000-08-25  0:00         ` Marco van de Voort
2000-08-25  0:00           ` Charles Hixson
2000-08-26  0:00             ` steve
2000-08-26  0:00               ` Marco van de Voort
2000-08-27  0:00               ` David Botton
2000-08-28  6:41                 ` Ole-Hjalmar Kristensen
2000-08-28  0:00                   ` David Botton
2000-08-28  0:00             ` Marco van de Voort
2000-08-28  0:00               ` Gautier
2000-08-28  0:00                 ` Marco van de Voort
2000-08-28  0:00                   ` Gautier
2000-08-28  0:00                     ` Charles Hixson
2000-08-28  0:00                   ` Marin D. Condic
2000-08-28  0:00                     ` Marco van de Voort
2000-08-28  0:00                       ` Larry Elmore
2000-08-28  0:00                       ` Gautier
2000-08-28  0:00                         ` Marco van de Voort
2000-08-28  0:00           ` Richard Riehle
2000-08-29  6:53             ` Marco van de Voort
2000-08-26  0:00     ` Robert C. Leif, Ph.D.
2000-08-25  0:00   ` Robert Deininger
2000-08-27  0:00   ` Ronald Cole
2000-08-27  0:00     ` Richard Kenner
2000-08-28  0:00       ` Ronald Cole
2000-08-27  0:00     ` David Starner
2000-08-27  0:00       ` Al Christians
2000-08-28  0:00         ` nabbasi
2000-08-29  0:00           ` David Starner
2000-08-29  0:00             ` Charles Hixson
2000-08-30  0:00               ` Gary Scott
2000-08-30  0:00                 ` Charles Hixson
2000-08-30  0:00                   ` Gary Scott
2000-08-29  0:00           ` Brian Rogoff
2000-08-29  0:00           ` Larry Kilgallen
2000-08-29  0:00             ` Marco van de Voort
2000-08-29  0:00               ` Jonas Maebe
2000-08-29  0:00               ` Gautier
2000-08-29  0:00                 ` Marco van de Voort
2000-09-06  0:38               ` John English
2000-09-08 18:41                 ` Stefan Skoglund
2000-09-08 19:24                   ` Marco van de Voort
2000-09-09 17:50                     ` Stefan Skoglund
2000-09-10 16:40                       ` Marco van de Voort
2000-09-11  0:59                         ` Ken Garlington
2000-09-11 13:01                   ` John English
2000-09-11 14:45                     ` Ehud Lamm
2000-09-11 19:32                       ` Marco van de Voort
2000-09-27 23:03                       ` John English
2000-08-29  0:00           ` Ehud Lamm
2000-09-06  0:26           ` John English
2000-09-06 16:08             ` Charles Hixson
2000-08-28  0:00         ` Marco van de Voort
2000-08-28  0:00           ` Al Christians
2000-08-28  0:00             ` Ray Blaak [this message]
2000-08-28  0:00           ` Gautier
2000-08-28  0:00             ` Marco van de Voort
2000-08-28  0:00       ` Marco van de Voort
     [not found] <01a101c0106f$745c3c70$cf18b70a@db2000>
2000-08-28  0:48 ` tmoran
replies disabled

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