Basic Univers
Procedure test(index.l)
  If EventwParam()= $6E
    Texte$ = GetGadgetText(index)
    If Texte$<>""
      If FindString(Texte$, ",", 1)= 0
        SetClipboardText(",") ; le point ne se voit pas beaucoup, alors je met une ","
        SendMessage_(GadgetID(index), #wm_paste, 0, 0)
        If Len(GetGadgetText(index))= 1
          SetGadgetText(index, "")
        EndIf
      EndIf
    EndIf
  EndIf
EndProcedure

If OpenWindow(0, 0, 0, 322, 275, #PB_Window_SystemMenu|#PB_Window_ScreenCentered, "StringGadget Flags") And CreateGadgetList(WindowID(0))
  StringGadget(0, 8, 5, 306, 20, "", #PB_String_Numeric)
  StringGadget(1, 8, 55, 306, 20, "", #PB_String_Numeric)
  StringGadget(2, 8, 105, 306, 20, "", #PB_String_ReadOnly )
  ButtonGadget(3, 8, 160, 306, 20, "Voir le résultat de l'addition")
  TextGadget(4, 8, 35, 306, 20, "+", #PB_Text_Center)
  TextGadget(5, 8, 135, 306, 20, " = ", #PB_Text_Center)
 
  Repeat
    EventID = WaitWindowEvent()
    Select EventID
      Case #WM_KEYDOWN
        Select GetFocus_()
          Case GadgetID(0)
            test(0)
          Case GadgetID(1)
            test(1)
        EndSelect
       
      Case  #PB_EventGadget
        Select EventGadgetID()
          Case 3
            Texte1$ = GetGadgetText(0)
            Texte2$ = GetGadgetText(1)
            Texte1$ = ReplaceString(Texte1$, ",", "." , 1 )
            Texte2$ = ReplaceString(Texte2$, ",", "." , 1 )
            number1.f = ValF(Texte1$)
            number2.f = ValF(Texte2$)
            total$ = StrF(number1 + number2)
            SetGadgetText(2, total$)
        EndSelect
       
      Case #PB_Event_CloseWindow
        Quit = 1
    EndSelect
  Until Quit = 1
EndIf