[Haskell-cafe] wxHaskell not in scope
Lennart Augustsson
lennart at augustsson.net
Thu Apr 16 19:05:39 EDT 2009
Take a look at the syntax for 'let' inside a 'do'.
On Fri, Apr 17, 2009 at 12:57 AM, Tsunkiet Man <temp.tsun at 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.tsun at 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 <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
>>> >
>>> >
>>
>
>
More information about the Haskell-Cafe
mailing list