Il suggerimento di pegaso22 è corretto, anche se tieni bene a mente che non è (quasi) possibile validare un numero durante l'inserimento, poichè potresti dover sostituire parte del contenuto con altri elementi o numeri generando temporaneamente un valore numerico non valido.
Secondo me, l'evento OnKeyPress ti permette di gestire egregiamente ogni situazione che richieda un filtro dei tasti e una validazione dell'input. Prendi questo esempio:
codice:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
FValue := StrToIntDef(Edit1.Text, FValue);
Edit1.Text := IntToStr(FValue);
Key := #0;
end;
if Key in ['.', ','] then
Key := DecimalSeparator;
if not(Key in ['0'..'9', DecimalSeparator]) then
Key := #0;
end;
Generalmente, io memorizzo il valore che figura nell'Edit all'interno di una variabile, chiamata FValue in questo caso, che fa parte della classe del form in cui sto inserendo il codice.
Nell'esempio sopra, se viene premuto il tasto INVIO, provvedo a memorizzare in tale variabile il valore inserito nell'Edit utilizzando il valore precedente di FValue nel caso in cui la conversione non vada a buon fine (il testo inserito non può essere ricondotto ad un numero). Impostando Key a #0, "assorbiamo" il tasto impedendo che venga recepito da altri controlli.
Il codice che segue verifica se il tasto è un punto (.) o un punto e virgola (, sostituendolo con DecimalSeparator che è la variabile disponibile in un'applicazione Delphi che contiene il separatore decimale valido nel sistema operativo, definito attraverso il Pannello di Controllo; in questo modo, indipendentemente dalle abitudini dell'utente, lo forziamo ad utilizzare il separatore decimale valido sostituendo il carattere con quello corretto, se necessario.
Nel passo finale, azzeriamo il tasto premuto se questo non rientra nell'insieme delle cifre consentite, incluso il separatore decimale.
In poche parole, abbiamo fatto validazione e filtro assieme.
La memorizzazione del valore intero digitato si potrebbe fare anche nell'evento OnExit, in modo da validarlo e acquisirlo quando l'utente si sposta verso un'altra casella di testo o un altro controllo visuale.