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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,3d4b1fd63b6dc4c5 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-11-05 13:21:32 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!newsfeed00.sul.t-online.de!t-online.de!blackbush.xlink.net!blackbush.de.kpnqwest.net!scapa.de.kpnqwest.net!194.121.123.2!193.141.58.115 From: "Axeplyr" Newsgroups: comp.lang.ada Subject: Re: LONG POST - ObjectAda 7.1 Special Edition - how do I use my own packages? Date: Mon, 5 Nov 2001 22:15:21 +0100 Organization: KPNQwest Germany GmbH, customer reader site Message-ID: <3be70163@194.121.123.2> References: NNTP-Posting-Host: 194.121.123.2 X-Trace: newsreader1.lb-lan.ka.de.kpnqwest.net 1004994919 27400 194.121.123.2 (5 Nov 2001 21:15:19 GMT) X-Complaints-To: "abuse@de.kpnqwest.net" NNTP-Posting-Date: Mon, 5 Nov 2001 21:15:19 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2462.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2462.0000 X-Original-NNTP-Posting-Host: 193.141.58.115 Xref: archiver1.google.com comp.lang.ada:15856 Date: 2001-11-05T22:15:21+01:00 List-Id: Well, I still haven't figured it out. I have no problems creating simple projects and adding files to the project. I've used MS Visual C++ for a couple of years now, and understand the Windows "project" concept of building apps. Let me provide an example. Let's say I wish to type in a package (from my textbook) called the "Screen" package. This screen package is a VERY basic 2-d graphics package that allows me to move the cursor around on the screen, etc. I need to create a specification file and a body file (code below). So I start by creating a screen project. So, I type in the specification file, and I type in the body file (code below). I save them both. I add them both to the project, and save the project. Now, I need to compile them both - first the screen specification file, then the body file. This is where I get lost. My problem is that I can't seem to get the body file to know where the specification file is. Maybe I don't know how to name these. Similar packages in the Aonix library would lead me to believe that I could call them screen.ads and screen.adb, but that doesn't work. I've tried screen.spc and screen.bdy also. I can compile the specification file no problem. I've called it Screen.ada, Screen.spc, and Screen.ads. In any case, it works fine. Then, try to compile the body file, and receive an error. Both files are in the project. But I receive the following errors: screen.adb: Error: line 26 col 41 LRM:4.1(3), Direct name, Row, is not visible, Ignoring future references screen.adb: Error: line 28 col 41 LRM:4.1(3), Direct name, Column, is not visible, Ignoring future references screen.adb: Error: line 32 col 1 LRM:3.11.1(6), Completion required for specification 'MoveCursor', Continuing Front end of ..\screen.adb failed with 3 errors. (0 Warnings) Tool execution failed. Perhaps if I provide the code, someone can try it and tell me if they have success: - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is the code for file screen.ads: - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PACKAGE Screen IS -- constants: the # of rows, cols on terminal Screen_Depth : CONSTANT Integer := 24; Screen_Width : CONSTANT Integer := 80; -- subtypes giving ranges of acceptable inputs -- to the cursor positioning operation SUBTYPE Depth IS Integer RANGE 1..Screen_Depth; SUBTYPE Width IS Integer RANGE 1..Screen_Width; PROCEDURE Beep; -- Pre: None -- Post: Terminal beeps once PROCEDURE ClearScreen; -- Pre: None -- Post: Terminal Screen is cleared PROCEDURE MoveCursor (Column : Width; Row : Depth); -- Pre: Column and row have been assigned in-range values -- Post: Cursor is moved to the given spot on the screen END Screen; - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is the code for file screen.adb : - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WITH Ada.Text_IO; WITH Ada.Integer_Text_IO; PACKAGE BODY Screen IS PROCEDURE Beep IS BEGIN Ada.Text_IO.Put (Item=> ASCII.BEL); END Beep; PROCEDURE ClearScreen IS BEGIN Ada.Text_IO.Put (Item=> ASCII.ESC); Ada.Text_IO.Put (Item=> "[2j"); END ClearScreen; PROCEDURE MoveCursor IS BEGIN Ada.Text_IO.Put (Item=> ASCII.ESC); Ada.Text_IO.Put ("["); Ada.Integer_Text_IO.Put (Item=> Row, Width => 1); Ada.Text_IO.Put (';'); Ada.Integer_Text_IO.Put (Item=> Column, Width => 1); Ada.Text_IO.Put (Item=> 'f'); END MoveCursor; END Screen; - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sorry for the long post, but I think everyone understands my problem now! 8^) John "Beard, Frank" wrote in message news:mailman.1004982492.1947.comp.lang.ada@ada.eu.org... > If you're familiar with Windows tools, many, if not most, > use a "project" concept. With OA, you first create a > project (using "File/New Project" as SteveD said), then > add files to it using the "Project/Files/Add..." option. > If you are creating a brand new file, use the "File/New File" > option to create the file. Once you're to the point where > you want to compile it, you must first save it ("File/Save"), > then add it to your project ("Project/Files/Add..."), and > then you can compile it. > > I hope this makes more since. > > Frank > > PS. > Steve, OA SE's are just like OA Professionals, but with limits > on the number of packages, or units per library, etc., and minus > some additional packages and bindings. The IDE and GUI Builder > work exactly the same. > > -----Original Message----- > From: Axeplyr [mailto:john.fluetter@aixtra.de] > Sent: Saturday, November 03, 2001 12:52 PM > To: comp.lang.ada@ada.eu.org > Subject: Re: ObjectAda 7.1 Special Edition - how do I use my own > packages? > > > Ok, so if I type in a package spec and body that he has in the text, I need > to create a project that uses them, then compile, build and execute the > entire thing? I don't need to precompile them? > > The book indicates that you must compile the specification file, then the > body file before you can use them. > > I'll give it a try and get back - thanks for the help! > > John >