[Haskell-cafe] wxHaskell not in scope

Tsunkiet Man temp.tsun at gmail.com
Thu Apr 16 18:43:18 EDT 2009


Thank you for your response, however if I can't do that, why can the example
of wxHaskell do that?

I refer to the following code inside
http://darcs.haskell.org/wxhaskell/samples/wx/ (ImageViewer.hs)

Line 99 untill 110

    openImage sw vbitmap mclose status fname
      = do -- load the new bitmap
           bm <- bitmapCreateFromFile fname  -- can fail with exception
           closeImage vbitmap
           set vbitmap [value := Just bm]
           set mclose [enabled := True]
           set status [text := fname]
           -- reset the scrollbars
           bmsize <- get bm size
           set sw [virtualSize := bmsize]
           repaint sw
       `catch` \err -> repaint sw

if I'm correct the openImage is also defined in the where clause. Therefor
by what I think it should not be possible, but it is.

Thanks for everything.





2009/4/17 Lennart Augustsson <lennart at augustsson.net>

> Variables bound in the do block are not in scope in the where.
> Use a let inside the do for onOpen instead.
>
> On Thu, Apr 16, 2009 at 11:53 PM, Tsunkiet Man <temp.tsun at gmail.com>
> wrote:
> > Hello,
> >
> > I'm trying to create a GUI by using wxHaskell. However I get the weird
> error
> > message of "Not in scope "dt"", well so I sorted them so that my so
> called
> > "dt" was in scope, however it failed. Can someone please tell me how I
> can
> > solve this error?
> >
> >            ... A lot of code that is not relevant in my opinion, if I'm
> > wrong please correct me and I will post my full code
> >
> >             --Debug text --
> >             dt <- staticText f [text := "Hello world!"]
> >
> >             imagePanel <- panel f [position := Point 2 2, clientSize :=
> Size
> > 100 100, tooltip := "This is a drawPanel", bgcolor := rgb 255 255 255]
> >             set f [ clientSize := Size 700 500,
> >                     menuBar := [mFile, mHelp],
> >                     visible := True,
> >                     on (menu exit) := close f,
> >                     on (menu open) := onOpen f vFile ]
> >
> >
> >             return ()
> >
> >             where
> >                 onOpen :: Frame a -> Var b -> IO ()
> >                 onOpen frame var = do   file <- fileOpenDialog frame
> False
> > True "Open File" [("PGM bestanden (*.pgm)",["*.pgm"]),("Alle bestanden
> > (*.*)",["*.*"])] "" ""
> >                                         case file of
> >                                             Nothing ->      return ()
> >                                             Just file ->    set dt [text
> :=
> > "HELLO"]
> >                                                             return ()
> >
> > Thank you for your help, I really owe haskell-cafe.
> >
> > Greetings Tsunkiet Man
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090417/ef3455c8/attachment.htm


More information about the Haskell-Cafe mailing list