Bug dans composant TBMSpinEdit

Résolu
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 - 4 févr. 2009 à 15:37
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 - 5 févr. 2009 à 16:20
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

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
4 févr. 2009 à 16:27
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%" />
3
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
5 févr. 2009 à 16:20
Salut f0xi

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

A+
0
Rejoignez-nous