Gadget text - Passage à la ligne

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
pls
Messages : 21
Inscription : mer. 26/févr./2020 17:21

Gadget text - Passage à la ligne

Message 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.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Gadget text - Passage à la ligne

Message 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. ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
pls
Messages : 21
Inscription : mer. 26/févr./2020 17:21

Re: Gadget text - Passage à la ligne

Message 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
pls
Messages : 21
Inscription : mer. 26/févr./2020 17:21

Re: Gadget text - Passage à la ligne

Message 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>"
Répondre