PS: a small note, sorry for multiple mails. After doing the let ... in function it did not work. =( It gave the error that 'do' has to end with some result. I did:
do let <the function> in <all the code that was behind the do> and it still didn't work =(. I'm doing something wrong I think. Thanks for your help. 2009/4/17 Tsunkiet Man <temp.t...@gmail.com> > 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 <lenn...@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.t...@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@haskell.org >> > http://www.haskell.org/mailman/listinfo/haskell-cafe >> > >> > >> > >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe