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 :

Problème dans un code sous Delphi


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut Problème dans un code sous Delphi
    Bonjour tout le monde,

    étant débutante en Delphi, j'essaie ca fait deux jour de compiler un programme me permettant de faire l somme de deux nombres integer voici mon code:


    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
    unit test1;
    
    interface
    
    uses
            Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
    
    type
            TForm1 = class(TForm)
            Button1: TButton;
            Memo2: TMemo;
            Memo1: TMemo;
            Memo3: TMemo;
            procedure Button1Click(Sender: TObject);
            private
            { Déclarations privées }
            public
            { Déclarations publiques }
    end;
    
    var
            Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    function Somme(nombre1, nombre2 : integer):integer;
    begin
            somme := nombre1 + nombre2;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
            nb1, nb2: integer;
    begin
            nb1 := StrToInt(memo1.Text);
            nb2 := StrToInt(memo2.Text);
            memo3.Lines.add(Somme(nb1,nb2));
    end;
    
    end.
    l'erreur se situe dans la ligne en rouge ou on me donne comme raison : Types incompatible: 'String' et 'Integer'

    est ce que quelqu'un trouve la faille parce que à force je ne trouve plus ou se situe l'erreur.

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Peut-être un IntToStr?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    Oui t'as tout à fait raison il suffisait de convertir la valeur de la fonction somme en string et ca marche

    memo3.Lines.add(IntToStr(Somme(nb1,nb2)));

    Sinon je voulais demander une autre question:

    Comment faire pour pourvoir écrire un texte dans une Memo, j'ai essayé MessageDlg mais ca ne marche pas.

    Merci d'avance

  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 : 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,

    Je comprends pas ton soucis....
    Si tu veux écrire du texte dans un Memo, tu fais la même chose que pour la somme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memo3.Lines.add("Mon texte");
    A moins que je n'ai pas compris la question

  5. #5
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    pour la saisie

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    en fait voila ce que je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Memo1.Lines.add(edit1.Text, ' + ', edit2.Text, ' = ', IntToStr(Somme(nb1, nb2)));
    et je souhaite qu'il m'écrive dans la ligne ajoutée le premier nombre correspondant à ca que l'utilisateur met dans edit1+ le second nombre qui sera la valeur ajoutée dans edit2 = la valeur que la fonction Somme renvoie

    mais ca ne marche pas pour moi

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    j'ai essaiyé inputQuery comme suite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            msgMemo := inputQuery(edit1.Text, ' + ', edit2.Text, ' = ', IntToStr(Somme(nb1, nb2))); 
     
            Memo1.Lines.add(msgMemo);
    ca me donne comme erreur :
    les types des paramètres VAR originaux et formels doivent être identiques
    Types incompatible : 'String' et 'Boolean'

  8. #8
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function AsserstrEdit(aedit:tedit):integer;
    begin
      try
     result:= strtoint(aedit.text);
      except
      aedit.SetFocus;
      raise;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nb1:=AsserstrEdit(edit1);
    nb2:=AsserstrEdit(edit2);
     
    Memo1.Lines.add(Format('%s + %s = %d',[edit1.text,edit2.text,Somme(nb1, nb2)]);

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2011, 13h36
  2. Problème dans un code delphi dans C++Builder
    Par gandf dans le forum Delphi
    Réponses: 5
    Dernier message: 27/03/2007, 23h14
  3. Problème dans un code delphi dans C++Builder
    Par gandf dans le forum C++Builder
    Réponses: 8
    Dernier message: 23/03/2007, 23h12
  4. DbLoockUpComboBox dans un DbCtrlGrid sous Delphi 7
    Par astn dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/03/2005, 09h31
  5. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09

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