Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3776 connectés 

 


Dernière réponse
Sujet : g un ptit prob en delphi pour mon projet:-(
JWhy le probleme est que ton op est extended alors que le case ne supporte (comme te le dit le compilateur) que le type ordinal (regarde l'aide de Delphi pour avoir plus de précision sur ce qu'est le type ordinal)
 
il faut donc que tu déclares ton op en Integer (par exemple) ou mieux en type énuméré:

Code :
  1. type
  2.   TOperations = (oAddition, oSoustraction, oMultiplication, oDivision);
  3. var
  4.   op : TOperations;


ensuite dans ton code,  tu utiliseras:

Code :
  1. procedure TForm2.Button18Click(Sender: TObject);//bouton +  
  2. begin
  3.   tmp := Strtofloat(Edit1.Text);
  4.   Edit1.TExt := '0';
  5.   op := oAddition;
  6. end;
  7. procedure TForm2.Button5Click(Sender: TObject);//Bouton =  
  8. begin
  9.   case op of
  10.     oAddition: Edit1.TExt:=FloatToStr(tmp+strtofloat(Edit1.Text));
  11.     oSoustraction :;
  12.     oMultiplication :;
  13.     oDivision :;
  14.     else ShowMessage('Operation non supportée');
  15.   end;
  16. end;


 
J'espere que c'est a peu pres clair  :sweat:

 

[edit]--Message édité par JWhy--[/edit]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
JWhy le probleme est que ton op est extended alors que le case ne supporte (comme te le dit le compilateur) que le type ordinal (regarde l'aide de Delphi pour avoir plus de précision sur ce qu'est le type ordinal)
 
il faut donc que tu déclares ton op en Integer (par exemple) ou mieux en type énuméré:

Code :
  1. type
  2.   TOperations = (oAddition, oSoustraction, oMultiplication, oDivision);
  3. var
  4.   op : TOperations;


ensuite dans ton code,  tu utiliseras:

Code :
  1. procedure TForm2.Button18Click(Sender: TObject);//bouton +  
  2. begin
  3.   tmp := Strtofloat(Edit1.Text);
  4.   Edit1.TExt := '0';
  5.   op := oAddition;
  6. end;
  7. procedure TForm2.Button5Click(Sender: TObject);//Bouton =  
  8. begin
  9.   case op of
  10.     oAddition: Edit1.TExt:=FloatToStr(tmp+strtofloat(Edit1.Text));
  11.     oSoustraction :;
  12.     oMultiplication :;
  13.     oDivision :;
  14.     else ShowMessage('Operation non supportée');
  15.   end;
  16. end;


 
J'espere que c'est a peu pres clair  :sweat:

 

[edit]--Message édité par JWhy--[/edit]

darkoli

d1d3r a écrit a écrit :

vla je debute ne programmation
et on m'a impose le delphi
je sais c pourri
mais bon...




 
oh l'autre il veut se battre ou quoi.
delphi est un tres bon langage surtout quand tu debutes en programmation. C'est deplus un langage objet (pascal objet) qui permet deja de se familiariser avec ce mode de programmation.

HelloWorld Delphi c'est pourri ???
Y'en a qui n'ont jamais utilisé le GUI Builder (ADA !!!!:lol:)
Moi j'ai (bcp) oublié le Delphi et je me souviens pas de ce type extended. S'il s'agit d'un type genre "super float" "je pense" que s'il t'envoit bouler c'est qu'il faudrait mettre :
 
case op of  
    0.0 :;  
    1.0 :Edit1.TExt:=FloatToStr(tmp+strtofloat(Edit1.Text));  
    2.0 :;  
    3.0 :;  
    4.0 :;  
end;
 
mais c'est peut etre des conneries ... en tous cas "je pense" qu'un simple integer suffirait à ton op et dans ce cas ton code serait bon (serait ... j'en sais rien ...)
 
Par contre, si au lieu d'appeler tes composants Button18, Button5 et Edit1 :ouch:tu les appelait BoutonPlus, BoutonEgal et NombreSaisi t'aurais pas besoin de mettre des commentaires à coté a chaque fois !!!
d1d3r vla je debute ne programmation
et on m'a impose le delphi
je sais c pourri
mais bon...
 
vla en fiat je dois faire une calc
 
et pour le + - / * je comptais faire comme ca:
 
procedure TForm2.Button18Click(Sender: TObject);//bouton +
begin
tmp:=Strtofloat(Edit1.Text);
Edit1.TExt:='0';
op:=1;
end;
 
et mettre
 
procedure TForm2.Button5Click(Sender: TObject);//Bouton =
begin
case op of
0:;
1 :Edit1.TExt:=FloatToStr(tmp+strtofloat(Edit1.Text));
2 :;
3 :;
4 :;
end;
end;
 
avec op declare en extended tout au debut et tmp etant aussi extended...
mais j'ai cette erreur et j'arrive po a la trouver a la compilation
 
[Erreur] Unit2.pas(198): Type ordinal requis
 
sachant ke la ligne 198 est la ligne case op of
 
 
 
help siouple

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)