Bonjour à Tous

Dans un premier temps, je tente de détecter le premier chiffre entré dans un Edit... :

Je ne demande qu'à comprendre pour quelle raison cette méthode fonctionne impec dans une procédure "standard", mais pas en KeyPress ni en OnChange.

Exemple qui plante direct en KeyPress :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
  var
    stt:string; // variable pour virer les zeros avant le point decimal...
  begin
    stt := Edit2.Text;            // variable chargée
    Label_Zero.Caption := stt[1]; // 1ere lettre dans ce Label
end;
(Je pense avoir - depuis le temps - compris que ça plante car le contenu de la variable est vide... mais pourquoi donc en KeyPress ?)



Exemple qui ne plante pas, mais lors de l'appui sur la touche, l'affichage ne survient que lors de l'appui sur la seconde touche, snifff !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
...
 Label_Zero.Caption := stt;  // remarquez, j'ai viré le ==> [1]
...
En fait, ce que je recherche, c'est la méthode de comment faire pour virer les zéros non significatifs à gauche du DecimalSeparator.

Si ce n'était que de virer les zéros à la volée, cela aurait été trop facile.

J'ajoute que pour ce cas précis, je ne souhaite pas utilser un Edit qui formate "tout seul" style CurrencyEdit.

Merci de vos remarques et idées.