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 :

program calculatrice simple?


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut program calculatrice simple?
    bonjour

    j'ai ecris un program ppour créer une calculatrice simple ( addition, multiplication, division, soustraction )

    voila le program ne se compile pas il s'arrete a ce program zt en bas il maffiche le code erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la partie gauche n'est pas affectable

    voila le source

    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    public
        { Déclarations publiques }
        TF , Erreur , Signe: integer;
         N1 , N2 , N3  : real;
         S : string ;
      end;
     
    var
      Form1: TForm1;
      TF : integer;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button7Click(Sender: TObject);
    begin
    if (TF=0) then edit1.Text := edit1.Text + '7'
     else begin
           edit1.Text := '7';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     if (TF=0) then edit1.Text := edit1.Text + '1'
     else begin
           edit1.Text := '1';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
     if (TF=0) then edit1.Text := edit1.Text + '2'
     else begin
           edit1.Text := '2';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button3Click(Sender: TObject);
    begin
    if (TF=0) then edit1.Text := edit1.Text + '3'
     else begin
           edit1.Text := '3';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button4Click(Sender: TObject);
    begin
    if (TF=0) then edit1.Text := edit1.Text + '4'
     else begin
           edit1.Text := '4';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button5Click(Sender: TObject);
    begin
    if (TF=0) then edit1.Text := edit1.Text + '5'
     else begin
           edit1.Text := '5';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button6Click(Sender: TObject);
    begin
    if (TF=0) then edit1.Text := edit1.Text + '6'
     else begin
           edit1.Text := '6';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button8Click(Sender: TObject);
    begin
    if (TF=0) then edit1.Text := edit1.Text + '8'
     else begin
           edit1.Text := '8';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button9Click(Sender: TObject);
    begin
    if (TF=0) then edit1.Text := edit1.Text + '9'
     else begin
           edit1.Text := '9';
           TF := 0;
           end;
    end;
     
    procedure TForm1.Button10Click(Sender: TObject);
    begin
    val(edit1.Text, N1 , Erreur);
    TF := 1;
    Signe := 1 ;
    end;
     
    procedure TForm1.Button13Click(Sender: TObject);
    begin
    val(edit1.Text, N1 , Erreur);
    TF := 1;
    Signe := 2 ;
    end;
     
    procedure TForm1.Button11Click(Sender: TObject);
    begin
      val(edit1.Text, N1 , Erreur);
    TF := 1;
    Signe := 3 ;
    end;
     
    procedure TForm1.Button14Click(Sender: TObject);
    begin
    val(edit1.Text, N1 , Erreur);
    TF := 1;
    Signe := 4;
    end;
     
    procedure TForm1.Button12Click(Sender: TObject);
    begin
    edit1.Text := '';
    N1 := 0;
    end;
     
    procedure TForm1.Button15Click(Sender: TObject);
    begin
    val(edit1.Text , N2 , Erreur);
    case Signe of
     1 : N3 := N1 / N2 ;
     2 : N3 := N1 * N2 ;
     3 : N3 := N1 + N2 ;
     4 : N3 := N1 - N2 ;
    end;
     Str(N3, edit1.text);
    Edit1.Text:=S ;
    TF := 1;
     
    end;
    si quelqu'un peu m'aider ? !!!


    merci

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Passe par une string intermédiare.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var ss : string ;
    ...
    Str(N3, ss);
    edit1.text=ss  ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    sa ce compile mais y a un petit probleme quand je fait un calcule exemple

    sa donne sa

    !!!!!!!!!!!!!!!!!!!!!!

  4. #4
    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 : 37
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Par défaut, Str affiche le résultat sous la forme exponentielle.
    Si tu veux plus de souplesse pour le formatage des données, je te conseille de te tourner vers la fonction FormatFloat...

    F1 sur les différentes méthodes t'expliqueront en détails ce qu'elles font.

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    argh !

    désolé mais moi ça m'arrache les yeux un code comme ça

    la propriété Caption de tes boutons est très probablement un chiffre de 0 à 9

    donc tu peux faire pointer tous tes boutons sur la même méthode OnClick et utiliser TButton(Sender).Caption comme paramètre au lieu d'écrire 10 fois le même code !

    Sinon il y a un clone de la calculatrice Windows dans LE livre
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    argh !

    désolé mais moi ça m'arrache les yeux un code comme ça

    la propriété Caption de tes boutons est très probablement un chiffre de 0 à 9

    donc tu peux faire pointer tous tes boutons sur la même méthode OnClick et utiliser TButton(Sender).Caption comme paramètre au lieu d'écrire 10 fois le même code !

    Sinon il y a un clone de la calculatrice Windows dans LE livre
    Salut,

    Idem Paul, mais ça me désole surtout au niveau de :
    Citation Envoyé par delphino7
    j'ai ecris un program ppour créer une calculatrice simple ( addition, multiplication, division, soustraction )
    Tu as écrit ?

    Tu pourrais au moins donner la source de l'ouvrage dans lequel tu as puisé ce code : Borland Delphi 7 (Éditions CampusPress) de Michel Martin, en page 85.

    Si tu as trouvé ce code ailleurs, merci de me MP.

    C'est un peu comme si je testais un code contenu dans le gros bouquin de Paul TOTH et d'Olivier, qu'ensuite je revienne dire : "J'ai écrit..."



    @+

  7. #7
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    oui c'est delphi 7 de borland !!!!

    je ne vais pas dire le contraire !!!

  8. #8
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    donc tu peux faire pointer tous tes boutons sur la même méthode OnClick et utiliser TButton(Sender).Caption comme paramètre au lieu d'écrire 10 fois le même code !
    peut tu me donné un exemple de cette méthode ?

    merci

  9. #9
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Citation Envoyé par delphino7 Voir le message
    oui c'est delphi 7 de borland !!!!

    je ne vais pas dire le contraire !!!


    Par contre, puisque tu sembles esquiver, il est de bon ton de citer ses sources de code.

    Ton "delphi 7 de borland" ci-dessus ne veut rien dire

  10. #10
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    je ne fait pas attention a sa le plus important et le code source je veux savoir il est le probleme ?!! merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    donc tu peux faire pointer tous tes boutons sur la même méthode OnClick et utiliser TButton(Sender).Caption comme paramètre au lieu d'écrire 10 fois le même code !
    es qu'il ya quelqu'un qui peu me montré cette methode merci ?

  11. #11
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Citation Envoyé par delphino7 Voir le message
    je ne fait pas attention a sa le ...[...]
    Même si le code est sous © ?


  12. #12
    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 : 37
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Paul Toth t'as plus ou moins expliqué comment faire...

    Tu déclares un seul événement OnClik (par exemple Button1Click) qui permettra d'ajouter les nombres selon l'astuce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Edit1.Text = TButton(Sender).Caption
    Il suffit de faire pointer de définir la méthode Button1Click pour chaque bouton représentant l'ajout d'un chiffre; cela se faisant dans l'inspecteur d'objet...

    Petite remarque tout de même, essaie de nommer tes composants, histoire de s'y retrouver un peu (surtout pour la maintenance), car Button1Click, Button2Click, etc... c'est pas très parlant

  13. #13
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si tu veux plus de souplesse pour le formatage des données, je te conseille de te tourner vers la fonction FormatFloat...
    mais je peu utilisé sa tu peu me donné un exemple merci ?

  14. #14
    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 : 37
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Citation Envoyé par delphino7 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si tu veux plus de souplesse pour le formatage des données, je te conseille de te tourner vers la fonction FormatFloat...
    mais je peu utilisé sa tu peu me donné un exemple merci ?
    Fait un petit effort s'il te plaît. Tout est expliqué. Il suffit de faire F1 sur la méthode ...

  15. #15
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    un coup de main parce que tu les as agacés... ce qui est normal.
    Déjà, tu pompes du code que tu t'appropries... et d'autre part tu choisis le bouquin concurrent de Paul Toth (+olivier Dahan) qui s'investit largement sur le forum de manière bénévole...
    En plus, il t'apprend indirectement à coder plus proprement par rapport ce qui est proposé dans ce dit bouquin que tout le monde possède avec DELPHI 7 STUDIO...

    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
     
      Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        procedure ButtonClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
     
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
     
    procedure TForm1.ButtonClick(Sender: TObject);
    begin
     with TButton(sender) do Caption:=inttostr(tag);
    end;
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    var i:integer;
    begin
     for i := 1 to 5 do (FindComponent('Button'+Inttostr(i)) as TButton).Tag:=i;
    end;
     
    end.
    Ici, tu changes le titre de chaque bouton en cliquant dessus. (1,2,3...)
    Tu te sers de sender qui joue le rôle du facteur et chaque événement onclick des boutons est lié à la même procedure ButtonClick.

    Excuse pour formatFloat, c'est sans commentaire en effet

  16. #16
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    je vais essayé merci

Discussions similaires

  1. Calculatrice simple- event button
    Par Luggy dans le forum Tkinter
    Réponses: 10
    Dernier message: 16/05/2015, 15h37
  2. Calculatrice simple et programmable?
    Par flyingman dans le forum Autres architectures
    Réponses: 5
    Dernier message: 09/06/2013, 16h18
  3. problème programation très simple caml
    Par toonette88 dans le forum Caml
    Réponses: 2
    Dernier message: 06/02/2009, 08h05
  4. Problème calculatrice simple
    Par beber54 dans le forum VBA Access
    Réponses: 8
    Dernier message: 23/10/2008, 18h18

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