Moim zdaniem, najlepiej będzie dla zdarzenia OnKeyPress. Poniżej masz przykład obsługi zdarzenia OnKeyPress, który używałem w jednym w swoich programów, aby ignorowało wpisywanie danych innych niż liczby do pola Edit.
void __fastcall TForm1::E_XminKeyPress(TObject *Sender, char &Key)
{
if (!(isdigit(Key) || Key == VK_BACK || Key == DecimalSeparator || Key==45))
{
Key = 0;
}
else
{
if ((Key == DecimalSeparator) && (E_Xmin->Text.Pos(DecimalSeparator) > 0))
{
Key = 0;
}
}
}