Ne veut pas compiler cette division.

Résolu/Fermé
PhilTony Messages postés 31 Date d'inscription lundi 10 juillet 2006 Statut Membre Dernière intervention 22 février 2013 - Modifié par PhilTony le 1/03/2012 à 07:38
PhilTony Messages postés 31 Date d'inscription lundi 10 juillet 2006 Statut Membre Dernière intervention 22 février 2013 - 1 mars 2012 à 19:21
Bonjour,

Avec votre aide je suis arrivé à faire, l'Addition, la Soustraction et la Multiplication. Je n'arrive pas à comprendre pourquoi j'ai des problèmes avec la division dans la compilation.

Ci-joint code et message d'erreurs:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
public
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
// l'erreur vient de cette ligne.
Edit3.Text := IntToStr(StrToInt(Edit1.Text) / StrToInt(Edit2.Text));
end;

end.

--------------------------------------------------------------------------------------------------------------------

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
--------------------------------------------------------------------------------------------------------------------


Message d'erreur:
[Erreur] Unit1.pas(32): Aucune version surchargée de 'IntToStr' ne peut être appelée avec ces arguments
[Erreur fatale] Project1.dpr(5): Impossible de compiler l'unité utilisée 'Unit1.pas'
A voir également:

3 réponses

KX Messages postés 16741 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 30 mai 2024 3 016
1 mars 2012 à 09:19
La division d'entiers ce ne serait pas plutôt : x div y ?

Si c'est un problème avec IntToStr ou StrToInt tu peux essayer avec val et str :

procedure TForm1.Button1Click(Sender: TObject);
var x,y,error:integer;
begin
    val(Edit1.Text,x,error);
    val(Edit2.Text,y,error);
    str(x div y,Edit3.Text);
end;
1
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
1 mars 2012 à 09:19
L'explication est simple : La division faite par l'opérateur « / » ne s'applique qu'a des valeurs réelles, c'est à dire des valeurs pouvant contenir une virgule...
Pour que ça fonctionne avec des integers, il suffit d'utiliser l'opérateur « div » :
Edit3.Text := IntToStr(StrToInt(Edit1.Text) div StrToInt(Edit2.Text));
1
PhilTony Messages postés 31 Date d'inscription lundi 10 juillet 2006 Statut Membre Dernière intervention 22 février 2013 1
1 mars 2012 à 19:21
Salut et bonne soirée,

Je vous remercie de tout coeur, évidemment à Nicocorico et KX, de leurs soutiens. Vous avez enfin résolu mon petit problème des quatre opérations. Je suis très content car cela me fait manipuler au maximum delphi 5, delphi 6 et delphi 7. Encore une foi merci à vous deux.

Cordialement philtony.
0