Une calculatrice en PANORAMIC et FreeBASIC

Dernière mise à jour : 1 Décembre 2010


  1. Introduction
  2. La DLL EVAL
  3. Le programme en PANORAMIC
  4. Conclusion
  5. Remerciements

I. Introduction

Dans l'article précédent nous avons vu que PANORAMIC peut appeler des fonctions de DLL. Ici nous allons utiliser cette possibilité pour programmer une calculatrice à l'aide d'un programme en PANORAMIC et d'une DLL en FreeBASIC.


II. La DLL EVAL

La DLL est une version simplifiée du "Simple Expression Evaluator" (SEE), un analyseur d'expressions mathématiques écrit par Aleksandar Ruzicic (alias "krcko") et publié sur le forum FreeBASIC.

La DLL exporte 3 fonctions:


III. Le programme en PANORAMIC

Le programme suivant utilise la DLL pour créer une calculatrice à 4 variables:


  ' ---------------------------------------------
  ' Declarations
  ' ---------------------------------------------

  dim i%, variable$, expression$, value, result
  label On_Click_Button_12

  ' ---------------------------------------------
  ' Description des objets
  ' ---------------------------------------------

  left 0,225
  top 0,200
  width 0,470
  height 0,225
  caption 0, "Calculatrice"

  alpha 1
  left 1,20
  top 1,20
  caption 1, "Variables :"

  alpha 2
  left 2,20
  top 2,53
  width 2,27
  height 2,20
  caption 2, "A = "

  edit 3
  left 3,50
  top 3,50
  text 3, "1"

  alpha 4
  left 4,20
  top 4,83
  width 4,28
  caption 4, "B = "

  edit 5
  left 5,50
  top 5,80
  text 5, "2"

  alpha 6
  left 6,20
  top 6,113
  width 6,29
  caption 6, "C = "

  edit 7
  left 7,50
  top 7,110
  text 7, "3"

  alpha 8
  left 8,20
  top 8,143
  width 8,28
  caption 8, "D = "

  edit 9
  left 9,50
  top 9,140
  text 9, "4"

  alpha 10
  left 10,220
  top 10,20
  width 10,170
  caption 10, "Saisissez une formule, puis cliquez sur Evaluer :"

  edit 11
  left 11,220
  top 11,50
  width 11,225
  text 11, "A + B + C + D"

  button 12
  left 12,261
  top 12,90
  width 12,140
  caption 12, "Evaluer"
  on_click 12, On_Click_Button_12

  alpha 13
  left 13,220
  top 13,143
  width 13,62
  caption 13, "Resultat = "

  edit 14
  left 14,275
  top 14,140
  width 14,170
  text 14,""

  ' ---------------------------------------------
  ' Programme principal
  ' ---------------------------------------------

  dll_on "eval.dll"
  i% = dll_call0("InitFunc")

  end

  ' ---------------------------------------------
  ' Sous-programme
  ' ---------------------------------------------

  On_Click_Button_12:

    variable$ = "A" : value = val(text$(3))
    i% = dll_call2("SetVariable", adr(variable$), adr(value))

    variable$ = "B" : value = val(text$(5))
    i% = dll_call2("SetVariable", adr(variable$), adr(value))

    variable$ = "C" : value = val(text$(7))
    i% = dll_call2("SetVariable", adr(variable$), adr(value))

    variable$ = "D" : value = val(text$(9))
    i% = dll_call2("SetVariable", adr(variable$), adr(value))

    expression$ = text$(11)

    i% = dll_call2("Eval", adr(expression$), adr(result))

    text 14, str$(result)
  return

Une fois lancé, le programme affiche la fenêtre de la calculatrice. Nous pouvons définir les valeurs des 4 variables et saisir une expression qui peut dépendre de ces variables, puis cliquer sur le bouton "Evaluer" pour avoir le résultat.



IV. Conclusion

Cet exemple simple montre comment associer PANORAMIC et FreeBASIC pour développer des programmes graphiques sous Windows.


V. Remerciements

Un grand merci à "krcko" pour avoir écrit SEE et l'avoir distribué sous une licence très permissive.




Retour au sommaire