Question 2 :
FormatFloat('#,##0.0000');

Envoyé par
Naga2
Pour infos ce traitement est inclus dans une boucle qui peut tourner plusieurs centaines de milliers de fois.
Ne fais surtout pas une conversion systématique, mais uniquement lorsque tu as besoin de l'afficher.
Question 3:
- Il suffit de regarder l'état actuel de la touche Ctrl.
- Maintenant, ta procédure contrôle uniquement le caractère et non que la valeur réelle résultante soit valide. Ton code va accepter 1.455.0..123, ce qui te générera une belle exception. Tiens et en parlant d'exception, pourquoi ne pas la provoquer
.
Et à l'arrivée:
1 2 3 4 5 6 7 8 9 10 11 12 13
| procedure TForm_Principale.Edit_PasIncrementationZOnKeyPress(Sender: TObject; var Key: Char);
begin
//Ctrl pressé ?...
if GetKeyState(VK_CONTROL) and $80000000 = 0 then
//...non
Try
//Convertible en réel ?...
StrToFloat(TEdit(Sender).Text +Key);
except
//...non => caractère refusé !
Key := #0;
end;
end; |
Partager