g un ptit prob en delphi pour mon projet:-(

g un ptit prob en delphi pour mon projet:-( - Programmation

Marsh Posté le 21-04-2001 à 17:32:53    

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

Reply

Marsh Posté le 21-04-2001 à 17:32:53   

Reply

Marsh Posté le 21-04-2001 à 23:20:27    

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 !!!

Reply

Marsh Posté le 22-04-2001 à 14:00:13    

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.

Reply

Marsh Posté le 22-04-2001 à 20:43:00    

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]


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed