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

Langage Delphi Discussion :

Entrées interdépendantes : mise à jour automatique?


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 15
    Points
    15
    Par défaut Entrées interdépendantes : mise à jour automatique?
    Bonjour,

    J'ai un programme à destination scientifique, et dans lequel j'aimerais que l'utilisateur puisse définir 2 paramètres p1 et p2. Mon problème est que ces 2 paramètres sont interdépendants, par exemple p1=2 x p2 (la relation n'est évidemment pas si simple, sinon je ne m'embêterais pas! ). Et j'aimerais que, si l'utilisateur décide d'entrer une valeur de p1, la valeur de p2 soit calculée automatiquement et affichée instantanément. Et vice et versa s'il choisit d'entrer la valeur de p2.

    Quelle solution ai-je pour faire ça?

    Merci
    Helber

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Bonjour,

    je vais peut être dire une betise, mais tu ne peux pas utiliser le OnChange de 2 TEdit (un pour p1, et un pour p2).

    Par exemple de P1 vers p2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Edit1Change(Sender: TObject);
    Var
       P2 : Integer ;
    begin
       If TryStrToInt(Edit1.text, P2) Then Edit2.text := InTToStr(P2 * 2) ;
    End ;
    à perfectionner et à blinder en fonction du type de p1 et p2 (réels ?)

    A+ Charly

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 15
    Points
    15
    Par défaut
    En effet ça marche. Le petit raffinement que je voudrais avoir maintenant, c'est que la mise à jour et son affichage soient automatique, et pas seulement à la fermeture de ma fenêtre.
    Merci déjà!

  4. #4
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    avec le EditChange, c'est automatique à la frappe dans Edit1, Edit2 se met à jour instantanément ? pas besoin de fermer la fenêtre ?

    il faut ensuite faire un EditChange pour Edit2 afin que l'opération se fasse aussi dans l'autre sens (lorsque tu modifie Edit2, Edit1 se met à jour)

    Charly

  5. #5
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Bonjour,

    il faut que tu ajoute un "focused" pour ne pas que les 2 EditChange "se marchent sur les pieds". Voilà le code complet de mon petit exemple :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        procedure Edit1Change(Sender: TObject);
        procedure Edit2Change(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
      p1 , P2 : Integer ;
     
    implementation
     
    {$R *.dfm}
    { ================================================================ }
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
       If Edit1.Focused  Then
       If TryStrToInt(Edit1.text, P2) Then Edit2.text := InTToStr(P2 * 2) ;
    End ;
    { ================================================================ }
    procedure TForm1.Edit2Change(Sender: TObject);
    begin
       If Edit2.Focused  Then
       If TryStrToInt(Edit2.text, P1) Then Edit1.text := InTToStr(P1 div 2) ;
    end;
    { ================================================================ }
     
    end.
    A+

    Charly

Discussions similaires

  1. [AC-2010] Mise à jour automatique champ commun entre plusieurs tables
    Par Fontaine_CLB dans le forum IHM
    Réponses: 18
    Dernier message: 23/10/2014, 17h58
  2. [AC-2010] Lien entre deux formulaires et mise à jour automatique du titre !
    Par matty_bzh dans le forum Access
    Réponses: 3
    Dernier message: 27/07/2012, 15h18
  3. mise à jour automatique entre deux table
    Par debutantasp dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/02/2008, 12h00
  4. Réponses: 9
    Dernier message: 18/11/2007, 23h59
  5. mise à jour automatique de champs entre 2 tables
    Par romdyane dans le forum Access
    Réponses: 5
    Dernier message: 11/10/2005, 19h51

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