My projects website

I have uploaded some of my projects to dotsboxes.tk.

domingo, 28 de septiembre de 2008

Crear Widgets en Scheme 2

La entrada anterior sobre como hacer widgets en Scheme no traía ningún ejemplo. Aquí pondré un ejemplo de como hacer el widget (con código). ¡Se trata de un widget que permite pintar en un canvas% !

(define canva-pintable%
    (class canvas%
      (init-field parent) ; el padre de este control
      (init-field color)  ; el color con el que dibujaré

      (super-new (parent parent)(min-width 400)(min-height 400)(horiz-margin 2)(vert-margin 2)
                 (paint-callback (lambda (cnv dc)(void)))
                 (style '(control-border vscroll hscroll)))
      
      (send (send this get-dc) set-pen color 1 'solid)
      
      ;recibe un mouse-event%
      (define/override (on-event evento)
        (cond ((send evento dragging?) (send (send this get-dc) draw-point (send evento get-x) (send evento get-y)))
        )
        )
      
      (define/override (on-char evento)
        (send (send this get-dc) clear)
        )
      )
    ) ;fin de mi widget

(define miVentana (new frame% (label "Dibujame!")))
(define miCanva (new canva-pintable% (parent miVentana)(color "black")))
(send miVentana show #t)

El programa final se vería algo así:

No hay comentarios:

Publicar un comentario

Podés usar las etiquetas html "b", "i" y "a" para negrita, cursiva y vínculos respectivamente.
No agregue correos electrónicos directamente. Puede agregarlos poniendo algo como "soy fulanito con correo en hotmail, obviamente com". Se evitarán que ladrones como los de NovalGraphics les envíen spam (nadie sabe de donde roban los correos, entonces mejor prevenir).

Entradas relacionadas

Related Posts with Thumbnails