Small Basic possède les trois types de contrôles.

  • bouton
  • zone de texte multiligne
  • zone de texte

Mais il n'y a pas de case à cocher de disponible dans l'objet Controls.
Donc, faisons par nous-même une case à cocher.


Conception

Pour faire une case à cocher, nous avons besoin d'une case, une coche et un gestionnaire d'événement de souris. Une case peut être dessinée avec GraphicsWindow.FillRectangle().  Une coche peut être dessinée avec Shapes.AddText() et la fonte "Wingdings 2". Dans le gestionnaire d'événement de souris, nous déterminerons sur le bouton de la souris est cliqué dans la case ou non et modifier l'état de la case à cocher.

Code

Voici un exemple de code pour la case à cocher. Le premier extrait est le gestionnaire d'événement souris.

Sub OnMouseDown
  mx = GraphicsWindow.MouseX
  my = GraphicsWindow.MouseY
  For iCheckBox = 1 To cboxNum
    x0 = cboxObj[iCheckBox]["x0"]
    x1 = cboxObj[iCheckBox]["x1"]
    y0 = cboxObj[iCheckBox]["y0"]
    y1 = cboxObj[iCheckBox]["y1"]
    If x0 <= mx And mx <= x1 And y0 <= my And my <= y1 Then
      If cboxObj[iCheckBox]["checked"] Then
        Shapes.HideShape(cboxObj[iCheckBox]["checkmark"])
        cboxObj[iCheckBox]["checked"] = "false"
      Else
        Shapes.ShowShape(cboxObj[iCheckBox]["checkmark"])
        cboxObj[iCheckBox]["checked"] = "true"
      EndIf
    EndIf
  EndFor
EndSub

Le second extrait est une sous-routine pour cocher la case à cocher.

Sub IsChecked
  iCheckBox = Text.GetSubTextToEnd(param["checkBoxName"], 9)
  return = cboxObj[iCheckBox]["checked"]
EndSub

Le troisième extrait est d'ajouter une case à cocher.

Sub AddCheckBox
  ' param["left"] - la coordonnée x de la case à cocher
  ' param["top"] - la coordonnée y de la case à cocher
  ' retourne 'return' - la case à cocher ajoutée à GraphicsWindow.
  cboxColor = GraphicsWindow.BrushColor
  cboxSize = GraphicsWindow.FontSize
  cboxFont = GraphicsWindow.FontName
  cboxNum = cboxNum + 1
  cboxX0 = param["left"]
  cboxX1 = cboxX0 + cboxSize + 1
  cboxY0 = param["top"] + 1
  cboxY1 = cboxY0 + cboxSize + 1
  GraphicsWindow.BrushColor = "Gray"
  GraphicsWindow.FillRectangle(cboxX0, cboxY0, cboxSize + 2, cboxSize + 2)
  GraphicsWindow.BrushColor = "White"
  GraphicsWindow.FillRectangle(cboxX0 + 1, cboxY0 + 1, cboxSize, cboxSize)
  cboxObj[cboxNum]["x0"] = cboxX0
  cboxObj[cboxNum]["x1"] = cboxX1
  cboxObj[cboxNum]["y0"] = cboxY0
  cboxObj[cboxNum]["y1"] = cboxY1
  GraphicsWindow.BrushColor = cboxColor
  GraphicsWindow.FontName = "Wingdings 2"
  cboxMark = Shapes.AddText("P")
  Shapes.Move(cboxMark, param["left"] + 1, param["top"] + 3)
  Shapes.HideShape(cboxMark)
  cboxObj[cboxNum]["checkmark"] = cboxMark
  cboxObj[cboxNum]["checked"] = "False"
  GraphicsWindow.FontName = cboxFont
  cboxMark = Shapes.AddText(param["caption"])
  Shapes.Move(cboxMark, param["left"] + cboxSize * 1.5 , param["top"])
  return = "CheckBox" + cboxNum
EndSub

Programme d'Exemple

Voici un programme d'exemple TCX734.  Ce programme peut générer un code PIN, Incluant des lettres de l'alphabet ou pas en fonction de la case à cocher.

    

Voir Aussi

Autres Langues