Take a look at the syntax for 'let' inside a 'do'.
On Fri, Apr 17, 2009 at 12:57 AM, Tsunkiet Man <temp.t...@gmail.com> wrote: > 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