IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Vider les champs automatique


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 100
    Points
    100
    Par défaut Vider les champs automatique
    Bonjour, j'aimerais pouvoir vider tous les champs d'un formulaire sans avoir à taper TxtChamp1.Clear; ou LblInfo1.Caption := '';

    J'aimerais avoir une Procedure qui verifie le type de l'objet et qu'il le vide s'il fait partie des types que je veux vider...

    J'ai une procedure semblable qui fait un focusnext comme si j'appuyais sur Tab, mais j'appuie sur enter...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     // Mettre le KeyPreview à True sur le formulaire
      // Permet d'utiliser la clé ENTER comme la clé TAB
      if Key = #13 then
      begin
        // Enlever les mémos (font partis de TCustomEdit)
        if (Form.ActiveControl is TCustomMemo) then
          Exit;
     
        if (Form.ActiveControl is TCustomEdit) or
           (Form.ActiveControl is TCustomComboBox) or
           (Form.ActiveControl is TCustomListBox) or
           (Form.ActiveControl is TCustomCheckBox) or
           (Form.ActiveControl is TRadioButton) or
           (Form.ActiveControl is TDateTimePicker) then
        begin
          Key := #0;
          Form.Perform(WM_NEXTDLGCTL, 0, 0);
        end;
      end;
    Une petite question aussi...

    Qu'est-ce qui est le mieux d'utiliser pour les champs TEdit?
    Text.Clear;
    Text.Text := '';

  2. #2
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Adapté d'un vieux post de Bloon , ce code devrait mettre à vide le texte de tous les contrôles de ta fiche ayant une propriété Text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    uses
     TypInfo;
     
    var
      i : integer;
     
     
    // marche aussi avec controlcount et controls
    for i := 0 to ComponentCount - 1 do
    begin
      if (GetPropInfo(components[i].ClassInfo, 'Text') <> nil) then
        setPropValue(components[i],'Text','');
    end;
    Roland
    Roland

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    Merci, ca fonctionne, par contre, j'imagine qu'il doit y avoir possibilité de vérifier si l'objet en question est un bouton par exemple et ne pas vider son caption...

    J'ai fait quelques tests, mais je n'arrive pas à trouver, je n'ai pas beaucoup de temps, alors si quelqu'un a une solution, je serais bien content

    Merci!

    Jonathan

  4. #4
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    La solution a déjà été donnée ci-dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (GetPropInfo(components[i].ClassInfo, 'Text') <> nil) then 
        setPropValue(components[i],'Text','');
    Cette ligne veux dire que l'on recherche sur le coposant en cours si il possède une propriété Text, auquel cas on lui affecte un texte vide.
    Le TButton ne possède pas de propriété Text mais une propriété caption donc il ne passe pas dans la condition ci-dessus et garde sa valeur.
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    oui mais si je veux vider les label qui possede une proprieté caption et non texte, alors je fais quoi pour que mes boutons garde leur caption?

    en fait je ne sais pas si je fais correcte d'afficher les infos d'un database dans des labels, y'a peut-etre un objet plus approprié, mais je suis dans un entreprise et je ne peux pas me mettre à modifier l'Application au complet par manque de temps...

  6. #6
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    C'est sûr que là tu retombes dans un traitement plus détaillé style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Components [i] is TLabel then TLabel (Components [i]) .Caption := '';
    à condition qu'il n'y ait pas sur ta Form de Label dont tu veuilles garder le texte

    Roland
    Roland

  7. #7
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    ah oui, j'avais pas pensé aux labels qui sont là pour donner une indication sur ce contient le champs :S

    bon... je vais essayer de trouver une autre solution, vider les Text ca va faire sauver du temps.

    Merci!

  8. #8
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Y a bien encore une manière pour rattraper le coup, même si c'est un peu bidouille, c'est d'utiliser le Tag : tu mets à 1 le tag des Labels que tu veux vider, et tu rajoutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...and (Components [i] .Tag = 1)
    dans ta condition.

    Roland
    Roland

  9. #9
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    Bidouille oui et non ... il faut bien qu'elle serve de temps à autre cette propriété tag :p

    Je pense que ca fera l'affaire, je te remercie

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    bonjour,

    for i := 0 to ComponentCount - 1 do
    begin
    if not components[i] is TButton then
    if (GetPropInfo(components[i].ClassInfo, 'Text') <> nil) then
    setPropValue(components[i],'Text','');
    end;

  11. #11
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    salut
    pour ta premiére proc de faire une chr(13) un chr(9) pourqoi tu test
    tu peut directement utilisé la méthode du fac ou directement faire
    bien sur celle la déplasse le focus sur les bouton et des bouton vers un autre composant a la différence de la méthode du fac
    a toi de voir
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  12. #12
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  13. #13
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    alors
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. Requête ne fonctionne plus après avoir 'vider' les champs ?
    Par chapeau_melon dans le forum WinDev
    Réponses: 9
    Dernier message: 14/10/2007, 11h03
  2. vider les champs d'un formulaire après validation
    Par WomanPSG76 dans le forum VBA Access
    Réponses: 7
    Dernier message: 31/08/2007, 12h25
  3. Réponses: 8
    Dernier message: 21/08/2007, 17h07
  4. Vider les champs d'un formulaire après validation
    Par HwRZxLc4 dans le forum Langage
    Réponses: 15
    Dernier message: 21/03/2007, 11h29
  5. Vider les champs d'un formulaire une fois ce dernier validé
    Par Silveur dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2007, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo