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

Lazarus Pascal Discussion :

Comment détecter le changement d'un TEdit


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Points : 50
    Points
    50
    Par défaut Comment détecter le changement d'un TEdit
    Bonsoir,



    Bien la partie SGBD m'a tellement "déconcerté" que je dévelloppe une méthode me permettant de gérer les fonctions "Suivant", "Précédent", "Insertion","Suppression".
    Je mettrai en ligner le fruit de mon travail.
    En attendant je tente de détecter un changement effectué dans un TEdit.
    La problématique est que l'évènement Onchange du TEdit déclenche lors de l'initialisation du TEdit ainsi au chargement de l'enregistrement j'utilise ce code pour initialiser mes valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         for i := 0 to pred(f_benef.ComponentCount) do
         Begin
              if (f_benef.Components[i] is TEdit) And
                 (f_benef.Components[i].tag=5)
              Then
              (f_benef.Components[i] as TEdit).Text :=
               f_benef.sql_benef_rec.fieldByName(f_benef.Components[i].Name).asString;
         End;
    Ce que je souhaite c'est pouvoir détecter une modification après le chargement de l'enregistrement.
    Faut-il que j'utilise un flag me permettant de savoir si je suis en procédure de chargement d'un enregistrement ou en "saisie" "modification" de mon enregistrement.

    Bref un peu dans le brouillard.

    Merci de vos conseils.

    Eric

  2. #2
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Bonsoir Eric,

    Suite a notre conv. téléphonique de l'autre jour, pourquoi n'utilises tu pas un tdbedit ?
    En plus l'événement onchange du dataset permet de savoir si il y a eu modif du record en cours. tous les outils sont là. Je les utilise

    Dis-moi

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Points : 50
    Points
    50
    Par défaut
    Bonsoir Chris


    Tout simplement parce que je n'ai pas trouvé toutes les méthodes pour mener mon travail à bien.

    Ainsi j'ai buté sur la mise à jour de champs spécifiques tels date et booléen.
    les EErrordatabase m'ont mis le moral à plat !!!


    Bref je reprends comme en cobol je gère tout du début jusqu'à la fin. Les seuls composants DB que j'utilise sont mysqlconnection et sqlquery.

    le code suivant ne m'avance pas
    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
    procedure Tf_benef.bt_quitter1Click(Sender: TObject);
    Var flag : Boolean ;
        i : Integer ;
    begin
         flag:=false;
         ShowMessage(BoolToStr(flag)+ ' départ ');
         for i := 0 to Pred(componentCount) do
         if (components[i] is TEdit) and (components[i].Tag=5)
         then begin
              flag:= (components[i] as TEdit).Modified;
              ShowMessage(BoolToStr(flag)+ ' ' + Components[i].Name);
    //          if flag then break;
         end;
     
         if not(flag) then f_benef.Hide;
    end;
    mon travail est basé sur un exemple trouvé sur le forum Delphi ce qui m'a permis de gérer les mises à jour des champs de la table >> les TEdit et vis versa.

    Bref on continue et on apprend un peu plus chaque jour mais la partie SGBD me laissera de "bons" souvenirs.
    En plus je me suis pris une veste lors de la première démo du prog. !!! cela faisait bien longtemps que ça ne m'était pas arrivé.

    Eric

  4. #4
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Points : 50
    Points
    50
    Par défaut
    re Bonsoir,


    Bon je crois que j'ai trouvé ...
    il me suffit de comparer le contenu de mes TEdit avec le contenu de mon sqlquery...
    je me penche la dessus demain.

    Eric

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Points : 50
    Points
    50
    Par défaut
    re re Bonsoir,


    Bon le code suivant
    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
    20
    21
    procedure Tf_benef.bt_suivClick(Sender: TObject);
    Var flag : Boolean;
        I : Integer ;
    begin
         flag:=False;
         //construction query
         if sql_benef_rec.RecordCount<>0 Then
         for i := 0 to pred(f_benef.ComponentCount) do
         Begin
             if (f_benef.Components[i] is TEdit) And
                (f_benef.Components[i].tag=5)
             Then
             If (f_benef.Components[i] as TEdit).Text <>
                 f_benef.sql_benef_rec.fieldByName(f_benef.Components[i].Name).asString
             Then Begin
                flag:=True;
                Break;
             End;
         End;
         if not (flag) Then navig_record('db_benef','suivant');
    end;
    me permet de tester mais hélas je ne sais toujours pas détecter un changement qui me permettrai de mettre mes boutons "suiv" prec" etc ... à Enable:=False

    Je précise que les extraits de codes ne sont pas significatifs il manque beaucoup de chose pour que ce soit pleinement fonctionel mais étant en phase de test je ne diffuse que les extraits concernés par la question


    Bref je continue les recherches DEMO lundi !!!


    Eric

  6. #6
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Bonjour Eric,

    Tu peux m'envoyer ton projet sur gmail stp

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/07/2008, 08h41
  2. [M1][W1][N1][D1] Comment détecter un changement de résolution?
    Par jazz matazz dans le forum Contribuez
    Réponses: 6
    Dernier message: 04/03/2006, 21h20
  3. [Langue Clavier] Comment détecter le changement de la langue ?
    Par Fares BELHAOUAS dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 30/09/2004, 19h26
  4. Comment détecter un changement du réglage de voume sonore ?
    Par mjlub dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/01/2004, 17h43

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