[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