Re: Fruit basket program in Nemerle

  • From: Jamal Mazrui <empower@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Sat, 10 Nov 2007 08:20:27 -0500 (EST)

Thanks for testing and letting me know, Octavian.

Unfortunately, I can't replicate the problem so far.  I uninstalled the
Nemerle distribution, and made sure the directory tree was deleted in case
there were other dependencies upon which n_fruit.exe was relying besides
the .NET Framework.  The program still runs fine for me.  I suppose it's
possible that some other file did not get uninstalled, but I also tried
running from a command prompt after clearing the PATH environmental
variable to prevent Windows from looking for DLLs in other directories.

I think the focus issues are related to JAWS 6 and the .NET Framework.
I notice some, though not as much, with JAWS 6.2.  JAWS 9 beta is not
showing these problems for me.

Jamal
On Sat, 10 Nov 2007, Octavian Rasnita wrote:

> Date: Sat, 10 Nov 2007 10:48:12 +0200
> From: Octavian Rasnita <orasnita@xxxxxxxxx>
> Reply-To: programmingblind@xxxxxxxxxxxxx
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Re: Fruit basket program in Nemerle
>
> Hi Jamal,
>
> The programs boo_fruit.exe and cs_fruit.exe work fine but the program
> n_fruit.exe gives the same error.
>
> Even boo_fruit and cs_fruit have a focus-movement issue.
>
> For example, sometimes if the list has the focus and I press tab, the "Add"
> button gets the focus instead of the "del" button.
> This happends when I add using alt+A.
>
> On the other hand, when I add pressing the "Add" button, after the list gets
> the focus and I press tab, nothing happends. The focus doesn't move and I
> need to press tab a second time to go to the "del" button.
>
> Octavian
>
> ----- Original Message -----
> From: "Jamal Mazrui" <empower@xxxxxxxxx>
> To: <programmingblind@xxxxxxxxxxxxx>
> Sent: Saturday, November 10, 2007 1:20 AM
> Subject: Re: Fruit basket program in Nemerle
>
>
> > I've reposted the archive so that the compiled versions of the C# and
> > Boo programs are also included.  Thus, the archive contains the
> > executables n_fruit.exe, Cs_fruit.exe, and boo_fruit.exe.  If the
> > Nemerle one crashes, I'm curious whether the others do, too.
> >
> > Jamal
> > On Fri, 9 Nov 2007,
> > Jamal Mazrui wrote:
> >
> >> Date: Fri, 9 Nov 2007 17:32:29 -0500 (EST)
> >> From: Jamal Mazrui <empower@xxxxxxxxx>
> >> Reply-To: programmingblind@xxxxxxxxxxxxx
> >> To: programmingblind@xxxxxxxxxxxxx
> >> Subject: Re: Fruit basket program in Nemerle
> >>
> >> More specifics would be helpful.  At what point did this error message
> >> occur?  Upon first running the program?
> >>
> >> I'm baffled since I downloaded the archive and tested the program before
> >> posting the message.  Can others report their experience as well?
> >>
> >> Jamal
> >> On Sat, 10 Nov
> >> 2007, Octavian Rasnita wrote:
> >>
> >> > Date: Sat, 10 Nov 2007 00:14:54 +0200
> >> > From: Octavian Rasnita <orasnita@xxxxxxxxx>
> >> > Reply-To: programmingblind@xxxxxxxxxxxxx
> >> > To: programmingblind@xxxxxxxxxxxxx
> >> > Subject: Re: Fruit basket program in Nemerle
> >> >
> >> > n_fruit.exe
> >> > n_fruit.exe has encountered a problem and needs to close.  We are sorry
> >> > for the inconvenience.
> >> > If you were in the middle of something, the information you were
> >> > working on
> >> > might be lost.
> >> > Debug Close
> >> >
> >> > Octavian
> >> >
> >> > ----- Original Message -----
> >> > From: "Jamal Mazrui" <empower@xxxxxxxxx>
> >> > To: <programmingblind@xxxxxxxxxxxxx>
> >> > Sent: Saturday, November 10, 2007 12:03 AM
> >> > Subject: Fruit basket program in Nemerle
> >> >
> >> >
> >> > > From the zip archive at
> >> > > http://www.EmpowermentZone.com/n_fruit.zip
> >> > >
> >> > > This fruit basket program is written in Nemerle  -- Full source code
> >> > > in
> >> > > the zip archive and pasted below.  The batch file, compile.bat,
> >> > > builds the
> >> > > executable, n_fruit.exe, which is about 12K in size.  No other files
> >> > > are
> >> > > needed to run the program -- as long as the .NET Framework 2.0 is
> >> > > installed.
> >> > >
> >> > > Nemerle is an open source, .NET-based language, originating at a
> >> > > university in Poland, and named after a character in a novel called
> >> > > "A
> >> > > Wizard of Earth."  The language is a superset of C#, with
> >> > > modifications
> >> > > and extensions to add features of functional languages like Haskell
> >> > > and
> >> > > Lisp.  Although Nemerle programs are generally strongly typed at
> >> > > runtime,
> >> > > a dynamic style of coding is usually possible because the compiler
> >> > > tries
> >> > > to infer types from context.  Its official web site is at
> >> > > http://Nemerle.org
> >> > >
> >> > > The fruit basket code is the result of a conversion from C#, via the
> >> > > cs2n.exe utility included in the Nemerle distribution.  For
> >> > > comparison,
> >> > > the archive includes the original C# source code, as well as another
> >> > > automatic conversion to the Boo language, via the web form at
> >> > > http://codeconverter.sharpdevelop.net/Convert.aspx
> >> > >
> >> > > I have also prepared a collection of Nemerle documentation at
> >> > > http://www.EmpowermentZone.com/n_doc.zip
> >> > >
> >> > > Jamal
> >> > >
> >> > > /*
> >> > > content of n_fruit.n
> >> > > Fruit Basket program in Nemerle
> >> > > Public domain by Jamal Mazrui
> >> > > */
> >> > >
> >> > > namespace FruitBasket {
> >> > > using System;
> >> > > using System.Windows.Forms;
> >> > >
> >> > > // define class inherited from Form
> >> > > class FbForm : Form {
> >> > > mutable  lblFruit : Label;
> >> > > mutable  txtFruit : TextBox;
> >> > > mutable  lblBasket : Label;
> >> > > mutable  lstBasket : ListBox;
> >> > > mutable  btnAdd : Button;
> >> > > mutable  btnDelete : Button;
> >> > >
> >> > > // define constructor
> >> > > public this() {
> >> > > // set window title
> >> > > this.Text = "Fruit Basket";
> >> > >
> >> > > this.Width = 400;
> >> > > this.Height = 285;
> >> > >
> >> > > // create two rows of controls with three controls in each row
> >> > > // label, textbox, button and label, listbox, button
> >> > > lblFruit =  Label();
> >> > > lblFruit.Text = "&Fruit:";
> >> > > lblFruit.Left = 14;
> >> > > lblFruit.Top = 14;
> >> > > lblFruit.Width = 44;
> >> > > lblFruit.Height = 16;
> >> > >
> >> > > txtFruit =  TextBox();
> >> > > txtFruit.Left = 64;
> >> > > txtFruit.Top = 14;
> >> > > txtFruit.Width = 200;
> >> > > txtFruit.Height = 16;
> >> > >
> >> > > btnAdd =  Button();
> >> > > btnAdd.Text = "&Add";
> >> > > btnAdd.Left = 272;
> >> > > btnAdd.Top = 14;
> >> > > btnAdd.Width = 100;
> >> > > btnAdd.Height = 20;
> >> > > //  make it the default button
> >> > > this.AcceptButton = btnAdd;
> >> > >
> >> > > // Define event handler
> >> > > btnAdd.Click += fun( o : object, e :  EventArgs) {
> >> > > mutable  sFruit = txtFruit.Text;
> >> > > if (sFruit == "")
> >> > > { {
> >> > > MessageBox.Show("No fruit to add!", "Alert");
> >> > > ();
> >> > > }
> >> > > }
> >> > > else { {
> >> > >
> >> > > lstBasket.Items.Add(sFruit);
> >> > > txtFruit.Text = "";
> >> > > lstBasket.SelectedIndex = lstBasket.Items.Count - 1;
> >> > > }
> >> > > }
> >> > > };
> >> > >
> >> > > lblBasket =  Label();
> >> > > lblBasket.Text = "&Basket:";
> >> > > lblBasket.Left = 14;
> >> > > lblBasket.Top = 38;
> >> > > lblBasket.Width = 44;
> >> > > lblBasket.Height = 16;
> >> > >
> >> > > lstBasket =  ListBox();
> >> > > lstBasket.Left = 64;
> >> > > lstBasket.Top = 38;
> >> > > lstBasket.Width = 200;
> >> > > lstBasket.Height = 200;
> >> > >
> >> > > btnDelete =  Button();
> >> > > btnDelete.Text = "&Delete";
> >> > > btnDelete.Left = 272;
> >> > > btnDelete.Top = 38;
> >> > > btnDelete.Width = 100;
> >> > > btnDelete.Height = 20;
> >> > >
> >> > > // Define event handler
> >> > > btnDelete.Click += fun( o : object, e :  EventArgs) {
> >> > > mutable  iFruit = lstBasket.SelectedIndex;
> >> > > if (iFruit == -1)
> >> > > { {
> >> > > MessageBox.Show("No fruit to delete.", "Alert");
> >> > > ();
> >> > > }
> >> > > }
> >> > > else { {
> >> > >
> >> > > lstBasket.Items.RemoveAt(iFruit);
> >> > > when (iFruit > lstBasket.Items.Count - 1) {iFruit =
> >> > > lstBasket.Items.Count
> >> > > - 1;}
> >> > > lstBasket.SelectedIndex = iFruit;
> >> > > }
> >> > > }
> >> > > };
> >> > >
> >> > > // add controls to form
> >> > > this.Controls.AddRange(    array[lblFruit, txtFruit, btnAdd,
> >> > > lblBasket,
> >> > > lstBasket, btnDelete]);
> >> > >
> >> > > // center form on screen
> >> > > this.StartPosition = FormStartPosition.CenterScreen;
> >> > > } // FbForm constructor
> >> > >
> >> > > // define main entry point of application
> >> > > static Main() :  void {
> >> > > Application.Run( FbForm());
> >> > > } // Main method
> >> > > } // FbForm class
> >> > > }
> >> > > // FruitBasket namespace
> >> > >
> >> > > __________
> >> > > View the list's information and change your settings at
> >> > > //www.freelists.org/list/programmingblind
> >> > >
> >> >
> >> > __________
> >> > View the list's information and change your settings at
> >> > //www.freelists.org/list/programmingblind
> >> >
> >> __________
> >> View the list's information and change your settings at
> >> //www.freelists.org/list/programmingblind
> >>
> > __________
> > View the list's information and change your settings at
> > //www.freelists.org/list/programmingblind
> >
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: