Imputer un nombre décimal sur un Tedit.

Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015 - 25 mai 2007 à 20:27
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 27 mai 2007 à 03:20
Salut Tout le monde!


J'ai une petite préoccupation d'avoir un Tedit decimal.
J'ai écrit ces codes ci-après juste pour me permettre d'exécuter les points suivants:


1. selectionner un mois à partir du combobox3
2. Après la selection, il fait le total du champ 'debit' de tous les enregistrements du mois choisi (ou selectionné)
3. Il impute ce total dans un Tedit (Tedit1)


Que voudrai-je vous demander afin d'être aidé?
les données saisies (ou enregistrées) dans le champ 'debit' viennent avec des chiffres decimaux et le total general
est suivi des chiffres décimaux. (exemple: 1200,45).
Curieusement, dans le Tedit31 là où le total devra apparaître...il s'affiche brutement sans les chiffres décimaux.
Comment pourrai-je faire afin que les décimaux apparaissent dans mon Tedit1.


Pour conclure, j'informe que ces codes marchent parfaitement. Juste le cas dudit Tedit.


Grand merci d'avance.
Leader2000


 


procedure TFrControloOrcamentais.BitBtn12Click(Sender: TObject);
  var a : integer;
begin
  AdoComptes.Filter:='mois='+ quotedstr(combobox3.Text);
  AdoComptes.Filtered:=True;
  a:=0;
  While not AdoComptes.Eof do begin
    a:= a+AdoComptes.fieldByName('debit').AsInteger;
    AdoComptes.Next;
  end;
  Edit1.Text:= inttostr(a);
  AdoComptes.Filtered:= false;
  AdoComptes.First;
  end;

2 réponses

Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 3
26 mai 2007 à 00:24
Bonjour,

La réponse est très simple, on ne peut pas additionner des entiers et avoir un résultat décimal. A la place de AdoComptes.fieldByName('debit').AsInteger; il faut mettre AdoComptes.fieldByName('debit').AsFloat; a doit être un real et pour convertir un reel en texte, il faut utiliser floatToStr.

Voila

Oniria
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
27 mai 2007 à 03:20
procedure TFrControloOrcamentais.BitBtn12Click(Sender: TObject);
  var R : double;
begin
  AdoComptes.Filter:='mois='+ quotedstr(combobox3.Text);
  AdoComptes.Filtered:=True;
  R := 0;
  While not AdoComptes.Eof do begin
    R :=  + AdoComptes.fieldByName('debit').AsFloat;
    AdoComptes.Next;
  end;
  Edit1.Text:= FloatToStr(R);
  AdoComptes.Filtered := false;
  AdoComptes.First;
  end;

<hr size="2" width="100%" />Croc (click me)
0