Page 1 sur 1

Gadget text - Passage à la ligne

Publié : dim. 19/avr./2020 15:14
par pls
Bonjour,

Je suis en train de réaliser un écran de saisie en utilisant les XMLDialog et j'ai des champs sur lesquels j'ai des textes assez long.
Est il possible de préciser lors de l'affichage des données de passer automatiquement à la ligne dans le champ ?

Code : Tout sélectionner

"      <frame text = 'Description'>"+
"        <string name = 'fonc_app' height = '150'/>"+
"      </frame>"+
Merci d'avance.

Re: Gadget text - Passage à la ligne

Publié : dim. 19/avr./2020 15:35
par Ar-S
Salut,
Si tu utilises un editorgadget, tu as le flag #PB_Editor_WordWrap pour les retours auto à la ligne.
Sinon sois plus précis ou donne du code. ;)

Re: Gadget text - Passage à la ligne

Publié : dim. 19/avr./2020 15:55
par pls
Merci, je ne connaissais pas encore l'editorGadget - En apprentissage :)

Et voici le code très inspiré de la formation Udemy.
Par contre comment je peux utiliser ce gadget dans mon XML (desc_app, fonc_app) ?

Code : Tout sélectionner

Module app_fic
  EnableExplicit
  ; variables communes 
  Global form_id        ; identifiant fenêtre non accessible de l'exterieur
  Global xml
  Global dialog_id      ; fenetre qui s'appelle dialog
  Global gMotherWindow
  ; Variable propre à la fenetre
  Global gCurrentRecord, bt_validate, bt_cancel, lib_app, desc_app, fonc_app
  
  Procedure makeXml()
    Protected title.s = "Nouvelle application"
    If gCurrentRecord
      title = "Fiche application"
    EndIf 
    Protected text.s = "<window name = 'form' width = '600' "+
                       " text = "+Chr(34)+title+Chr(34)+
                       " flags = '#PB_Window_SystemMenu|#PB_Window_WindowCentered'>"+
                       "  <vbox expand = 'item:1'>"+
                       "    <vbox>"+
                       "      <frame text = 'Nom'>"+
                       "        <string name = 'lib_app' />"+
                       "      </frame>"+
                       "      <frame text = 'Description'>"+
                       "        <string name = 'desc_app' height = '100'/>"+
                       "      </frame>"+
                       "      <frame text = 'Description'>"+
                       "        <string name = 'fonc_app' height = '150' />"+
                       "      </frame>"+
                       "    </vbox>"+
                       "    <hbox expand = 'no' width ='100'>"+
                       "      <button text = 'Valider' name = 'bt_validate'/>"+
                       "      <button text = 'Annuler' name = 'bt_cancel'/>"+
                       "    </hbox>"+
                       "  </vbox>"+
                       "</window>"
    
    xml = CatchXML(#PB_Any,@text,StringByteLength(text))
    ProcedureReturn xml
  EndProcedure
  
  Procedure exit()
    ; ferme la fenêtre
    CloseWindow(form_id)
    ; réactive la fenêtre mère et lui rend le focus
    DisableWindow(gMotherWindow,#False)
    SetActiveWindow(gMotherWindow)
  EndProcedure
  
  ; Validation enregistrement
  Procedure validate()
    Debug "Validation"
  EndProcedure
  
  ; Remplissage du record en mode edit
  Procedure fillRecord()
    If app::find(gCurrentRecord)
      SetGadgetText(lib_app, app::lib_app)
      SetGadgetText(desc_app, app::desc_app)
      SetGadgetText(fonc_app, app::fonc_app)
    EndIf
  EndProcedure
  
  Procedure open(motherWindow, currentRecord = 0)
    Protected font = LoadFont(#PB_Any, "Arial", 10, #PB_Font_HighQuality)
    gMotherWindow = motherWindow
    gCurrentRecord = currentRecord
    If makeXml()
      dialog_id = CreateDialog(#PB_Any)
      If dialog_id
        SetGadgetFont(#PB_Default, FontID(font))
        If OpenXMLDialog(dialog_id, xml,"form",0,0,0,0, WindowID(motherWindow))
          ; Désactiver le fenêtre mère
          DisableWindow(gMotherWindow,#True)
          ; Charge les ID des gadgets
          form_id = DialogWindow(dialog_id)
          bt_validate = DialogGadget(dialog_id, "bt_validate")
          bt_cancel = DialogGadget(dialog_id, "bt_cancel")
          lib_app = DialogGadget(dialog_id, "lib_app")
          desc_app = DialogGadget(dialog_id, "desc_app")
          fonc_app = DialogGadget(dialog_id, "fonc_app")
          ; Remplir les champs en mode edit
          If gCurrentRecord
            fillRecord()
          EndIf 
          ; Mise en place des callBack
          BindEvent(#PB_Event_CloseWindow, @exit(),form_id)
          BindGadgetEvent(bt_validate, @validate())
          BindGadgetEvent(bt_cancel, @exit())
        EndIf
      EndIf
    EndIf 
  EndProcedure
  
EndModule

Re: Gadget text - Passage à la ligne

Publié : dim. 19/avr./2020 16:00
par pls
Ho flemmard que je suis. En cherchant un peu, c'est bon. Merci beaucoup en tout cas.

Code : Tout sélectionner

Protected text.s = "<window name = 'form' width = '600' "+
                       " text = "+Chr(34)+title+Chr(34)+
                       " flags = '#PB_Window_SystemMenu|#PB_Window_WindowCentered'>"+
                       "  <vbox expand = 'item:1'>"+
                       "    <vbox>"+
                       "      <frame text = 'Nom'>"+
                       "        <string name = 'lib_app' />"+
                       "      </frame>"+
                       "      <frame text = 'Description' >"+
                       "        <editor name = 'desc_app' height = '100' flags = '#PB_Editor_WordWrap'/>"+
                       "      </frame>"+
                       "      <frame text = 'Description'>"+
                       "        <string name = 'fonc_app' height = '150' />"+
                       "      </frame>"+
                       "    </vbox>"+
                       "    <hbox expand = 'no' width ='100'>"+
                       "      <button text = 'Valider' name = 'bt_validate'/>"+
                       "      <button text = 'Annuler' name = 'bt_cancel'/>"+
                       "    </hbox>"+
                       "  </vbox>"+
                       "</window>"