Bug dans composant TBMSpinEdit

Résolu
Signaler
Messages postés
149
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009
-
Messages postés
149
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009
-
Bonjour

J'ai un petit soucis avec le TBmSinEdit, composant gratuit qui peut être utilisé avec Delphi ou Borland c++ builder
qui combine spin buttons, jauge et saisie dans une zone de texte n'acceptant que les numériques compris entre 2 limites, minvalue et maxvalue: le rêve pour la saisie d'entiers sauf que...

J'ai beau mettre la propriété precision à 0 (pas de virgule) il m'affiche 2 décimales à l'affichage de ma forme...

ex:0.00 au lieu de 0

Ces décimales disparaissent quand on utilise les spins buttons ou la jauge

Quelqu'un qui a déjà utilisé ce contrôle peut-il m'indiquer s'il s'agit d'un bug du composant(*) ou d'une erreur de ma part ?

Merci

(*) et si possible, donner un moyen connu pour le contourner ?

2 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
Patch du fichier BMSpinEdit.PAS :

Ligne 511 :

function TBMDSpinEdit.ValueToText(const V: Double): string;
begin
  Result := Format('%.*f',[FPrecision, V]);
  if FValueUnit <> '' then
       Result := Result + ' ' + FValueUnit;
end;

Ligne 923 :

procedure TBMDSpinEdit.SetPrecision(V: Integer);
begin
  if V < 0 then
    V := 0
  else
  if V > 9 then
    V := 9;
  if FPrecision <> V then
  begin
    FPrecision := V;
    SetValue(Value);
  end;
end;

Ligne 993 :

procedure TBMDSpinEdit.KeyPress(var Key: Char);
begin
  if (not FEditorEnabled) or
     (not (Key in ['0'..'9','-','+',DecimalSeparator,#8])) then
     Key := #0;

  inherited;
end;

<hr size="2" width="100%" />
Messages postés
149
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009
1
Salut f0xi

Je vais corriger et recompiler et réinstaller le contrôle
Mille fois merci !

A+