Dear Matthias, Thank you very much and apologies. It works fine now. While going over your example, I noticed a typo in my code, I should have coded (require "get-devanagari-page1.rkt") instead of (require "get-devanagari-page.rkt") which was an older version where I didn't enclose the GUI creation code in a procedure..
On Fri, Apr 20, 2012 at 5:13 PM, Matthias Felleisen <[email protected]> wrote: > > > This works fine for me: > > #lang racket/load > > (module a racket/gui > (provide get-devanagari-page) > > (define (get-devanagari-page) > (define main-ocr-frame (new frame% > [label "DEVANAGARI OCR"] > [width 10000] > [height 10000])) > > > ;Main title > (define title (new message% > [parent main-ocr-frame] > [label "DEVANAGARI OCR PROJECT"] > [font (make-object font% 20 'modern 'normal 'bold)])) > > ; Display main window > (send main-ocr-frame show #t) > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > ;Display message-box allowing user to continue or exit program > (when (equal? 'no (message-box > "CONVERT PAGE TO DEVANAGARI" > "Do you want to continue? " > main-ocr-frame ;parent > '(yes-no))) ;style > (exit)) > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > > ;If continuing then display a get file dialog to get devanagari-page > ; which is a page of devanagari text to OCR. > > (get-file > "Get Devanagari input file" > main-ocr-frame > "C:\\Users\\Harry\\OCR_PROJECT\\DEVANAGARI_PAGE_IMAGES" > "devanagari_page_3.gif" > #f > null > '(("Any" "*.*") ("Common graphics jpg and gif" "*.jpg;*.gif") > ("JPEG *.jpg" "*.jpg") ("GIF *.gif" "*.gif"))))) > > (module b racket/gui > (require 'a) > (get-devanagari-page)) > > (require 'b) > > > > Can you modify this somewhat simplified code to exhibit the problem with > applying (get-devanagari-page)? > > > On Apr 20, 2012, at 5:01 PM, Harry Spier wrote: > >> Dear list members, >> >> Perhaps someone could explain this "module,require and provide" behaviour. >> >> I've created a Racket module that provides a procedure that creates a >> simple GUI dialog to return a file path and another module that uses >> the procedure. >> >> The module to create the GUI is: >> >> >> #lang racket/gui >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> ;; >> ;; This module displays a gui file dialog >> ;; to return a page of devanagari text for >> ;; testing. >> ;; >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> >> (provide get-devanagari-page) >> >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> ;Define and display top level window >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> (define (get-devanagari-page) >> (define main-ocr-frame (new frame% >> [label "DEVANAGARI OCR"] >> [width 10000] >> [height 10000])) >> >> >> ;Main title >> (define title (new message% >> [parent main-ocr-frame] >> [label "DEVANAGARI OCR PROJECT"] >> [font (make-object font% 20 'modern 'normal 'bold)])) >> >> ; Display main window >> (send main-ocr-frame show #t) >> >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> >> ;Display message-box allowing user to continue or exit program >> (when (equal? 'no (message-box >> "CONVERT PAGE TO DEVANAGARI" >> "Do you want to continue? " >> main-ocr-frame ;parent >> '(yes-no))) ;style >> (exit)) >> >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> >> >> ;If continuing then display a get file dialog to get devanagari-page >> ; which is a page of devanagari text to OCR. >> >> (get-file >> "Get Devanagari input file" ;title >> main-ocr-frame ;parent >> "C:\\Users\\Harry\\OCR_PROJECT\\DEVANAGARI_PAGE_IMAGES" ;start directory >> "devanagari_page_3.gif" ;default filename >> #f ;default extension >> null ;style - on Windows null means use native window style, >> ; '(common) means use platform independent style >> '(("Any" "*.*") ("Common graphics jpg and gif" "*.jpg;*.gif") >> ("JPEG *.jpg" "*.jpg") ("GIF *.gif" "*.gif")) >> )) >> ------------------------------------------- >> ------------------------------------------ >> When I type >>> (get-devanagari-page) >> in the interactions window everything works fine and the window and >> dialogs display and behave correctly. >> >> BUT in following module which requires the above module, for it to >> work I need to code "get-devanagari-page" NOT (get-devanagari-page) >> >> I.e this works and returns a file path.: >> >> Module get-devanagari-page.rkt >> ----------------- >> #lang racket/gui >> (require "imagemagick_interface.rkt") >> (require "get-devanagari-page.rkt") >> get-devanagari-page >> ---------------------------- >> >> BUT the following displays the gui and executes but gives an >> error:procedure application: expected procedure, given: >> #<path:C:\Users\Harry\OCR_PROJECT\DEVANAGARI_PAGE_IMAGES\devanagari_page_3.gif> >> (no arguments) >> >> Module main.rkt >> ------------------- >> #lang racket/gui >> (require "imagemagick_interface.rkt") >> (require "get-devanagari-page.rkt") >> >> (get-devanagari-page) >> >> --------------------------- >> It appears to me that coding "get-devanagari-page" in module >> "main.rkt" causes procedure "get-devanagari-page" to be applied. Can >> someone explain to me why in that case it is applied and it doesn't >> just return #<procedure:get-devanagari-page> without being applied as >> it does when typed in the interactions pane. >> >> Thanks, >> Harry Spier >> ____________________ >> Racket Users list: >> http://lists.racket-lang.org/users > ____________________ Racket Users list: http://lists.racket-lang.org/users

