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 :

probleme avec extraction d'un listview


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Par défaut probleme avec extraction d'un listview
    bonsoir a tous , excusez moi du derangement mais j ai un petit probleme

    avec un listview (toujours pour mon travail de fin d'étude sur la gestion

    complete d'un café)


    je m'explique : dans un listview(qui symbolise mon ticket de caisse a l'écran)

    j ai 2 colonnes :

    1ere colonne= articles : qui contient les articles choisis par le serveur

    2eme colonne= les prix : en euros

    quand je calcule mon total,pas de problemes,ca fonctionne bien

    par contre,j'ai prévu un bouton annuligne , pour que le serveur

    puisse retirer des elements avant de valider le ticket

    en voici le 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
    procedure TForm_Caisse.RbButton_Annulligne_TicketClick(Sender: TObject);
    var i:integer;
    phrase:array of string;
    temp:array of real;
    begin
    setlength(phrase,ListView_Ticket.Items.Count);
    setlength(temp,ListView_Ticket.Items.Count);
    for i:= 0 to (ListView_Ticket.Items.Count -1) do
    begin
          if (ListView_Ticket.Items.Item[i].selected=true)
          then
          begin
          phrase[i]:=ListView_Ticket.Items.Item[i].SubItems[0];
          temp[i]:=strtofloat(phrase[i]);
          total:=total-temp[i];
     
          end;
    end;
     
    ListView_Ticket.DeleteSelected;
    Edit_Total.Text:=floattostr(total)+' '+'€';
     
    end;
    alors mon probleme : parfois ca fonctionne bien , si par exemple je supprime

    tout les elements du listview , mon edit_total affiche bien : 0 €

    mais parfois cela m affiche une valeur folle

    genre : 3,27418092638254E-15 €

    comment cela se peut il ?

    est ce un bug ? y a t il moyen de le résoudre ?

    PS : je précise que j utilise borland delphi 2005 developper edition

    ainsi que microsoft access 2003

    je vous remercie d avance pour votre aide car je dois presenter mon

    travail ce samedi 16 septembre a 11h15 du matin

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Salut
    Je pense qu'il faudrait mieux utiliser des réels à virgule fixe qui évite justement ce genre d'erreur...
    Ou alors, pour tester si la valeur est à 0, utilise la fonction IsZero qui, je pense, pour 3,27418092638254E-15 renverra True

    Et puis dans ton code, ce serait quand même bien plus simple de claculer le total une fois les éléments supprimés pas avant
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Par défaut
    merci pedro , je vais essayer ca alors

    mais qu appelles tu reels a virgules fixes ?

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 123
    Par défaut
    Citation Envoyé par softstar
    merci pedro , je vais essayer ca alors

    mais qu appelles tu reels a virgules fixes ?
    Il te parle d'un truc genre simpleRountTo (n'oublie pas d'ajouter MATHS dans la clause USE).

    function simpleroundTo (variable : DOUBLE, position : INTEGER)

    un exemple:

    x:REAL;

    x:=SimpleRoundTo(12345.456,0) te donne x=12345
    x:=SimpleRoundTo(12345.456,-1) te donne x=12345.5
    x:=SimpleRoundTo(12345.456,-2) te donne x=12345.46

    par contre

    x:=SimpleRoundTo(12345.456,1) te donne x=12350 (arrondi avant la virgule)
    x:=SimpleRoundTo(12345.456,2) te donne x=12300 (idem)

  5. #5
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut
    salut

    mois avotre place j'utilise une fonction pour l'annulation de la commande
    dans la quelle je donne directement la valeur 0 au total !


Discussions similaires

  1. Probleme avec un listview et une status bar
    Par Seth77 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/02/2007, 15h30
  2. probleme avec fonction extract
    Par babou54 dans le forum Delphi
    Réponses: 13
    Dernier message: 28/12/2006, 12h13
  3. Extraction fichier Excel - Probleme avec les VbCrLf
    Par oromeyer dans le forum Modules
    Réponses: 3
    Dernier message: 16/02/2006, 19h06
  4. probleme avec listview
    Par gaut dans le forum C++
    Réponses: 3
    Dernier message: 09/08/2004, 00h04
  5. [VB6] Problèmes avec ListView
    Par FlopErik dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/03/2003, 16h33

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