[plt-scheme] Re: GUI

From: Avi (n4alpaca at gmail.com)
Date: Fri Jan 8 15:03:51 EST 2010

So, I tried to do this, but it did not work for me. Here is what my
sample so far.

(define a-text
     (make-text "Please input number of elements"))

(define (test x)
  (cond
    [(string=? "hello" x)(+ 1 1)]))

(define initial-window
  (create-window
   (list (list a-text)(list (make-button "GO" test )))))

(define x (text-contents a-text))

On Jan 8, 9:07 am, Matthias Felleisen <matth... at ccs.neu.edu> wrote:
> (string=? "hello" x) where x is the value from the text field
>
> On Jan 7, 2010, at 2:14 PM, Avi wrote:
>
>
>
> > Could you give me a hint? I was using text-contents a-text-field to
> > use the products of a text field to work. What does text-contents
> > produce?
>
> > On Jan 7, 1:47 pm, Matthias Felleisen <matth... at ccs.neu.edu> wrote:
> >> On Jan 7, 2010, at 1:42 PM, Avi wrote:
>
> >>> Is there a way to compare what is entered into a text-field using a
> >>> conditional?
>
> >> Of course.
>
> >>> if x is equal to what is in text box a than run program b
>
> >> Yeap.
>
> >>> On Jan 6, 10:22 pm, Matthias Felleisen <matth... at ccs.neu.edu> wrote:
> >>>> (require htdp/gui)
>
> >>>> (define w
> >>>>   (create-window
> >>>>    (list
> >>>>     (list
> >>>>      (make-button "go"
> >>>>                   (lambda (e)
> >>>>                     (begin
> >>>>                       (hide-window w)
> >>>>                       (local ((define w
> >>>>                                 (create-window
> >>>>                                  (list (list (make-button
> >>>> "stop" (lambda (e) (hide-window w))))))))
> >>>>                         true))))))))
>
> >>>> On Jan 6, 2010, at 6:18 PM, Avi wrote:
>
> >>>>> Please disregard my last few statements, I have decided to  
> >>>>> change my
> >>>>> code based on the revisions that matthias gave me, but I have run
> >>>>> into
> >>>>> a new problem, I want to have certain gui windows open other gui
> >>>>> windows, but they all open at once, also I would like to know  
> >>>>> how to
> >>>>> make a function run when certain text is put into a text box.
> >>>>> -Thanks
>
> >>>>> On Jan 6, 3:37 pm, Matthias Felleisen <matth... at ccs.neu.edu>  
> >>>>> wrote:
> >>>>>> After fixing numerous syntactic mistakes (in a nonsensical but
> >>>>>> grammatically correct way), the two windows pop up just fine:
>
> >>>>>> ;; Intermediate plus Lambda
>
> >>>>>> (require htdp/gui)
>
> >>>>>> (define a-text-choices
> >>>>>>      (make-message "Please pick what you want to do."))
> >>>>>> (define options
> >>>>>>   (list "Compound""Moles(experimental)"))
> >>>>>> (define choices (make-choice options))
>
> >>>>>> (define b-text-field
> >>>>>>      (make-text "Please input number of elements"))
>
> >>>>>> (define (choose-prog x)
> >>>>>>   (cond
> >>>>>>     [(symbol=? 2 (text-contents b-text-field)) "Molecule2"]
> >>>>>>     [(symbol=? 3 (text-contents b-text-field)) "Molecule3"]
> >>>>>>     [(symbol=? 4 (text-contents b-text-field)) "Molecule4"]))
>
> >>>>>> (define Element-Window
> >>>>>>    (create-window
> >>>>>>         (list (list b-text-field)
> >>>>>>               (list (make-button "Go" ; choose-prog
> >>>>>>                                  (lambda(e) (hide-window Element-
> >>>>>> Window)))))))
>
> >>>>>> (define (choose x)
> >>>>>>   (cond
> >>>>>>     [(symbol=? 0 (choice-index choices))Element-Window]))
>
> >>>>>> (create-window (list (list a-text-choices)(list choices) (list
> >>>>>> (make-
> >>>>>> button "OK" choose))))
>
> >>>>>> ;; ---
>
> >>>>>> Since I don't know what you want to achieve, I can't help much
> >>>>>> more. I
> >>>>>> can tell you, though, that you should design individual functions
> >>>>>> with
> >>>>>> check-expect tests and examples and so on.
>
> >>>>>> Good luck -- Matthias
>
> >>>>>> On Jan 5, 2010, at 7:28 PM, Avi wrote:
>
> >>>>>>> I have a program which (perhaps I should add that I began  
> >>>>>>> scheme 2
> >>>>>>> months ago) gives me the following error:
>
> >>>>>>> reference to an identifier before its definition: choose-prog
> >>>>>>> <----
> >>>>>>> This is a definition
>
> >>>>>>> I know how to fix this error, but when I move my GUI file above
> >>>>>>> this
> >>>>>>> definition, it will give me another error that tells me  that I
> >>>>>>> can
> >>>>>>> not use a program before I define it. A runs B, but B takes data
> >>>>>>> from
> >>>>>>> A so B must come after A, but A also must go after B because of
> >>>>>>> the
> >>>>>>> manner in which the scheme compiler works. Please help me
> >>>>>>> resolve. If
> >>>>>>> I did not do a good enough job explaining, try it for yourself
> >>>>>>> with
> >>>>>>> this code (this is the code i'm having trouble with).
>
> >>>>>>> (define a-text-choices
> >>>>>>>     (make-message "Please pick what you want to do."))
> >>>>>>> (define options
> >>>>>>>  (list "Compound""Moles(experimental)"))
> >>>>>>> (define choices
> >>>>>>>  (make-choice options)
> >>>>>>> (define b-text-field
> >>>>>>>     (make-text "Please input number of elements"))
>
> >>>>>>> (define choose-prog
> >>>>>>>  (cond
> >>>>>>>    [(symbol=? 2 (text-contents b-text-field)) Molecule2]
> >>>>>>>    [(symbol=? 3 (text-contents b-text-field)) Molecule3]
> >>>>>>>    [(symbol=? 4 (text-contents b-text-field)) Molecule4]))
>
> >>>>>>> (define Element-Window
> >>>>>>>   (create-window
> >>>>>>>        (list (list b-text-field)(list (make-button "Go" choose-
> >>>>>>> prog
> >>>>>>> (lambda(e)(hide-window Element-Window)))))))
>
> >>>>>>> (define choose
> >>>>>>>  (cond
> >>>>>>>    [(symbol=? 0 (choice-index choices))Element-Window]))
>
> >>>>>>> (create-window
> >>>>>>>        (list(list a-text-choices)(list choices)(make-button "OK"
> >>>>>>> choose)))
>
> >>>>>>> _________________________________________________
> >>>>>>>  For list-related administrative tasks:
> >>>>>>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> >>>>>> _________________________________________________
> >>>>>>   For list-related administrative tasks:
> >>>>>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> >>>>> _________________________________________________
> >>>>>  For list-related administrative tasks:
> >>>>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> >>>> _________________________________________________
> >>>>   For list-related administrative tasks:
> >>>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> >> _________________________________________________
> >>   For list-related administrative tasks:
> >>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> > _________________________________________________
> >  For list-related administrative tasks:
> >  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> _________________________________________________
>   For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme


Posted on the users mailing list.