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

Delphi Discussion :

Accéder à la valeur d'un bouton


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut Accéder à la valeur d'un bouton
    Bonjour,
    j'ai à l'idée de faire une calculatrice sous delphi.
    j'ai commencé par faire des boutons et tout ce qui va avec
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    unit cal3;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        Button6: TButton;
        Button7: TButton;
        Button8: TButton;
        Button9: TButton;
        Button10: TButton;
        Button11: TButton;
        Button12: TButton;
        Button13: TButton;
        Button14: TButton;
        Button15: TButton;
        Button16: TButton;
        procedure Button10Click(Sender: TObject);
        procedure Button9Click(Sender: TObject);
        procedure Button8Click(Sender: TObject);
        procedure Button7Click(Sender: TObject);
        procedure Button6Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button16Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    
    var
      Form1: TForm1;
      ex : Tlabel ;
      lab : Tlabel ; 
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button16Click(Sender: TObject);
    begin
    close();
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         lab:=strToint(Button1.text); [Erreur] cal3.pas(61): E2362 Impossible d'accéder au symbole protected TControl.Text
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      lab :=strtoint(button2.text);
    end;
    
    procedure TForm1.Button3Click(Sender: TObject);
    begin
        lab := strtoint(button3.text);
    end;
    
    procedure TForm1.Button4Click(Sender: TObject);
    begin
          lab := strtoint(button4.text);
    end;
    
    procedure TForm1.Button5Click(Sender: TObject);
    begin
        lab:=strtoint(button5.text);
    end;
    
    procedure TForm1.Button6Click(Sender: TObject);
    begin
          lab :=strtoint(button6.text);
    end;
    
    procedure TForm1.Button7Click(Sender: TObject);
    begin
        lab :=strtoint(button7.text);
    end;
    
    procedure TForm1.Button8Click(Sender: TObject);
    begin
        lab :=strtoint(button8.text);
    end;
    
    procedure TForm1.Button9Click(Sender: TObject);
    begin
        lab :=strtoint(button9.text);
    end;
    
    procedure TForm1.Button10Click(Sender: TObject);
    begin
          lab := strtoint(button10.text);
    end;
    
    end.
    l'erreur a été marqué dans le code en rouge , et j'ai sa pour tout les boutons.
    Alors ma question comment accéder au champ d'un bouton sous delphi?
    Sachant que je veux appuyer sur le boutton "1 ", le boutton "+" , le boutton"2" sa
    -->m'affiche dans mon label1 le resultat.

    J'ai mi en piéce jointe une image de ma calulatrice

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    est ce qu quel qu'un aurait une idée :

    Just pour accéder au champs du boutton ?

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Quelques questions ...

    Qu'est ce que ta variable Lab?

    Si c'est un Label, comme déclaré dans le code, il doit être créé dynamiquement non?
    Or là, je ne vois pas cette 'initialisation'.

    Par la suite, il faudrait faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lab.Caption:=Button1.Caption;
    Corrigez moi si je me trompe, mais je ne pense pas que ce soit Button1.text

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Essaye "Caption" au lieu de Text ...

    et tu peux aussi faire

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    unit cal3;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        Button6: TButton;
        Button7: TButton;
        Button8: TButton;
        Button9: TButton;
        Button10: TButton;
        Button11: TButton;
        Button12: TButton;
        Button13: TButton;
        Button14: TButton;
        Button15: TButton;
        Button16: TButton;
        procedure ButtonGlobalClick(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
      ex : Tlabel ;
      lab : Tlabel ; 
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.ButtonGlobalClick(Sender: TObject);
    var
       BtnText: string;
    begin
      if (Sender is TButton) then
      begin
        BtnText := (Sender as TButton).Caption ;
        if Length(BtnText) = 1 then
        begin
          case BtnText[1] 
            'x' : ...;
            '+' : ...;
            '0'..'9' : ...;  
          end;
        end else
        begin
          // gestion des autres boutons
        end;
      end;
    end;
     
    end.
    tu affectes à tous tes boutons dont les traitements seront les mêmes ce gestionnaire générique ... cela évitera d'avoir un code à rallonge
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    unit cal4biss;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
      Label1: TLabel;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        Button6: TButton;
        Button7: TButton;
        Button8: TButton;
        Button9: TButton;
        Button10: TButton;
        Button11: TButton;
        Button12: TButton;
        Button13: TButton;
        Button14: TButton;
        Button15: TButton;
        Button16: TButton;
        procedure Label1Click(Sender: TObject);
        procedure Button10Click(Sender: TObject);
        procedure Button9Click(Sender: TObject);
        procedure Button8Click(Sender: TObject);
        procedure Button7Click(Sender: TObject);
        procedure Button6Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button16Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    
    var
      Form1: TForm1;
      ex : Tlabel ;
      lab : Tlabel ;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button16Click(Sender: TObject);
    begin
    close();
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         lab.caption:=strToint(Button1.caption);  [Erreur] cal4biss.pas(62): E2010 Types incompatibles : 'string' et 'Integer'
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      lab.caption :=strtoint(button2.caption);
    end;
    
    procedure TForm1.Button3Click(Sender: TObject);
    begin
        lab.caption := strtoint(button3.caption);
    end;
    
    procedure TForm1.Button4Click(Sender: TObject);
    begin
          lab.caption := strtoint(button4.caption);
    end;
    
    procedure TForm1.Button5Click(Sender: TObject);
    begin
        lab.caption:=strtoint(button5.caption);
    end;
    
    procedure TForm1.Button6Click(Sender: TObject);
    begin
          lab.caption :=strtoint(button6.caption);
    end;
    
    procedure TForm1.Button7Click(Sender: TObject);
    begin
        lab.caption :=strtoint(button7.caption);
    end;
    
    procedure TForm1.Button8Click(Sender: TObject);
    begin
        lab.caption :=strtoint(button8.caption);
    end;
    
    procedure TForm1.Button9Click(Sender: TObject);
    begin
        lab.caption :=strtoint(button9.caption);
    end;
    
    procedure TForm1.Button10Click(Sender: TObject);
    begin
          lab.caption := strtoint(button10.caption);
    end;
    j'ai ce code d'erreur qui s'affiche !!
    Meric pour ton code ShaiLeTroll mais je ne suis pas assez expérimentez en delphi pour optimiser le code ce cette maniére là.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lab.caption:=strToint(Button1.caption);
    Types incompatibles : 'string' et 'Integer'
    Hé bdptaki, t'es un comique toi!

  7. #7
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Lab.Caption ne peut contenir que du texte, donc inutile de faire un StrToInt ...

    De plus, comme je l'ai dit, j'ai des questions quant à l'initialisation de ta variable Lab... Ca ne serait pas Label1 plutôt (vu ton screenshoot ...)

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    Voila ce que je veu faire :

    quand j'appuye sur le boutton "1" , le boutton "+" , le boutton "2"
    cette opération la doit s'afficher sur le "label1"

    Ensuite en appuyant sur le boutton "=" le résultat s'affiche dans le label1 aussi .

    " merci pour la remarque j'ai corrigé la variable lab en label1"



    Normalement on passe par strtoint pour pouvoir récupérer le paramètre en format string puis le transformer en int pour pouvoir effectuer l'opération, sauf si je me trompe ?

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Effectivement comique.

    Ca irait peut-être mieux avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     lab.caption:=Button1.caption; // au lieu de lab.caption:=strToint(Button1.caption);
    Non?
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recupérer la valeur d'un bouton radio
    Par ericmart dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/05/2008, 15h42
  2. Réponses: 2
    Dernier message: 12/01/2006, 18h14
  3. Réponses: 11
    Dernier message: 22/09/2005, 10h21
  4. [JSP] passer en parametre valeur d un bouton radio
    Par logica dans le forum Servlets/JSP
    Réponses: 19
    Dernier message: 13/05/2005, 14h09
  5. Réponses: 8
    Dernier message: 09/03/2005, 10h47

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