MaxLength

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

MaxLength

Message par Dr. Dri »

Bonjour,
je voudrais savoir comment limiter le nombre de caractères d'un StringGadget comme das d'autres langages... (en htaml/javascript, en vb et en java par exemple o trouve le maxlength).

Les api sont les bienvenues s'il n'y a pas de solution simple et efficace en PB...

Dri

PS. comment je met à jour mon PB sans internet ??
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

au cas où ca interesserai quelqu'un de le savoir, j'ai trouvé ca :

Code : Tout sélectionner

SendMessage_(GadgetID(), #EM_LIMITTEXT, LongueurMax, 0)
Dri
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

j'ai pas d'pô
sur une dizaine de StringGadget, ca ne marche que sur un seul.

Quelqu'un a une idée ??

Dri
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Vu comme ça, je dirais que tu n'as pas de problème et que tu cherches à faire ce que la fonction ne peut t'apporter.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

bah pourtant je crée 8 StringGadget
je les limite tous entre 3 et 10 caractères
Mais un seul des gadget est limité...

Je vois pas ce que j'essaye de faire que la fonction ne fasse pas...
D'autant plus que ca fonctionne sur un des gadgets, c'est donc que
ca fonctionne sur le StringGadget, quand à savoir pourquoi pas sur
les autres... (appel identique pour gadget identique)

Dri
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

:) Salut,

Essayes ça dans ta boucle Repeat sur chaque string
c'est peut-être pas ce que tu cherches, mais ça aide bien.

Code : Tout sélectionner

Case #String
      Chaine$ = GetGadgetText(#String)
       Longueur = Len(Chaine$)      
        If Longueur >=10          
           MessageRequester("ERREUR", "Trop de caractères ont été utilisés")
         SetGadgetText(#String, "")      
      EndIf
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Code : Tout sélectionner

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #String_0
  #String_1
  #String_2
  #String_3
  #String_4
  #String_5
  #String_6
  #String_7
  #String_8
  #String_9
EndEnumeration

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 247, 184, 160, 307,  #PB_Window_SystemMenu | #PB_Window_TitleBar , "New window ( 0 )")
    If CreateGadgetList(WindowID())
      StringGadget(#String_0, 10, 10, 140, 20, "")
      StringGadget(#String_1, 10, 40, 140, 20, "")
      StringGadget(#String_2, 10, 70, 140, 20, "")
      StringGadget(#String_3, 10, 100, 140, 20, "")
      StringGadget(#String_4, 10, 130, 140, 20, "")
      StringGadget(#String_5, 10, 160, 140, 20, "")
      StringGadget(#String_6, 10, 190, 140, 20, "")
      StringGadget(#String_7, 10, 220, 140, 20, "")
      StringGadget(#String_8, 10, 250, 140, 20, "")
      StringGadget(#String_9, 10, 280, 140, 20, "")
      SendMessage_(GadgetID(#String_0), #EM_LIMITTEXT, 1, 0)
      SendMessage_(GadgetID(#String_1), #EM_LIMITTEXT, 2, 0)
      SendMessage_(GadgetID(#String_2), #EM_LIMITTEXT, 3, 0)
      SendMessage_(GadgetID(#String_3), #EM_LIMITTEXT, 4, 0)
      SendMessage_(GadgetID(#String_4), #EM_LIMITTEXT, 5, 0)
      SendMessage_(GadgetID(#String_5), #EM_LIMITTEXT, 6, 0)
      SendMessage_(GadgetID(#String_6), #EM_LIMITTEXT, 7, 0)
      SendMessage_(GadgetID(#String_7), #EM_LIMITTEXT, 8, 0)
      SendMessage_(GadgetID(#String_8), #EM_LIMITTEXT, 9, 0)
      SendMessage_(GadgetID(#String_9), #EM_LIMITTEXT, 10, 0)
      
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat
  Event = WindowEvent()
  Delay(1)
Until Event = #PB_Event_CloseWindow
Chez moi, ce code fonctionne...
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

On peux même simplifier de la sorte :

Code : Tout sélectionner

Enumeration
  #Window_0
EndEnumeration

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 247, 184, 160, 307,  #PB_Window_SystemMenu | #PB_Window_TitleBar , "New window ( 0 )")
    If CreateGadgetList(WindowID())
      StringGadget(1, 10, 10, 140, 20, "")
      StringGadget(2, 10, 40, 140, 20, "")
      StringGadget(3, 10, 70, 140, 20, "")
      StringGadget(4, 10, 100, 140, 20, "")
      StringGadget(5, 10, 130, 140, 20, "")
      StringGadget(6, 10, 160, 140, 20, "")
      StringGadget(7, 10, 190, 140, 20, "")
      StringGadget(8, 10, 220, 140, 20, "")
      StringGadget(9, 10, 250, 140, 20, "")
      StringGadget(10, 10, 280, 140, 20, "")
      For k = 1 To 10
        SendMessage_(GadgetID(k), #EM_LIMITTEXT, k, 0)
      Next k
      
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat
  Event = WindowEvent()
  Delay(1)
Until Event = #PB_Event_CloseWindow
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Moi aussi je ne comprend pas pourquoi ça ne marche qu'avec 1 seule stringgagget :?:

Jai utilisé ça dans mon PureLoto contrôler sur environ 10 stringgagdget et tous sont correctement limités, rien de spécial à mettre
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

bah moi non plus je e comprends pas...
d'autant lpus que maintenant ca marche sans problème...
sans que je ne change une ligne de code :silly:

désolé pour le dérangement :jesors:

Dri
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ou là là, il a fait une grosse bêtise et il veut pas le dire. :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Dr. Dri a écrit :

Code : Tout sélectionner

SendMessage_(GadgetID(), #EM_LIMITTEXT, LongueurMax, 0)
Excellent ! :P :P :P

Encore de l'API qui devrait avoir son équivalent en natif dans PB !
~~~~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
Anonyme

Message par Anonyme »

Qu'est ce qui deviens Dr.Dri ?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bah j'sais pas..... :roll:
Il est bien repassé, il y a quelque temps car ses derniers messages sont de 2009...

Moi je lui ai parlé la derniere fois sur le projet MOEBIUS du grand PRODI :wink:
Il a dit qu'il n'avait plus de temps a donner a pure :cry:

http://www.purebasic.fr/french/viewtopi ... 3583#93583
Répondre