Stringgadgets

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Cagou-77
Messages : 79
Inscription : dim. 15/août/2004 13:27

Stringgadgets

Message par Cagou-77 »

comment tester tous les stringgadgets d'une fenêtre pour savoir s'il sont tous remplis .

Merci pour vos Réponses .
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

salut
je pence que si tu met un truc de ce genre sa derait marcher

Code : Tout sélectionner

if #stringgadgets1 (signe diferent je c pas lequel est ce en PB soit >< ou   != ) de "" and " " and "   " etc
pour chaque gadjet et kla sa te fait un verif
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Code : Tout sélectionner

If GetGadgetText(#StringGadget) <> ""
  ; ici le stringadget n'est pas vide
else
; ici le stringadget est vide
endif 
on peut aussi faire comme ceci

Code : Tout sélectionner

if len(GetGadgetText(#StringGadget))
  ; ici le stringadget n'est pas vide
else
; ici le stringadget est vide
endif 

Cagou-77
Messages : 79
Inscription : dim. 15/août/2004 13:27

Stringgadget

Message par Cagou-77 »

Merci Denis pour tes réponses, mais je me suis mal exprimé

j'aimerai tester tous les gadgets d'une fenêtre en utilisant leur indentifiant
cela pour limiter le nombre de ligne de code
c'est à dire récupérer l'indentifiant des gadgets contenus dans une fenêtre

ex:
Boucle
if Empty( GadgetID ) ;là on ne connait pas l'indentifiant passer en
; paramêtre
MessageRequester(............
endif
fin de boucle



Procedure.l Empty( Valeur.s )
If Len( LTrim( Valeur ) ) > 0
ProcedureReturn #FALSE
Else
ProcedureReturn #TRUE
EndIf
EndProcedure
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Ok, je me disais aussi que c'était vraiment basique :roll:

utilises le message suivant

text$ = space(513)
Sendmessage_(GadgetID, WM_GETTEXT, 513, text$)


tu dois définir une taille pour text$ et j'ai mis 513 (512 + 1 pour le 0 de fin de chaine)

Pour aller plus vite, tu peux utiliser une seule fois hors de la boucle la commande allocamemory() pour définir un buffer de la taille que tu veux et passer ça en paramètre à la place de text$

Code : Tout sélectionner

*MemoryID = AllocateMemory(513)
  If *MemoryID
   ; mettre ici la boucle

   Sendmessage_(GadgetID, WM_GETTEXT, 513, *MemoryID)
  else
    ; ici l'allocation de mémoire a échouée
  endif
Cagou-77
Messages : 79
Inscription : dim. 15/août/2004 13:27

Message par Cagou-77 »

Ok merci Denis et bonne soirée
Répondre