Проверить, числовое ли введено значение



Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses
ClipBrd;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Mgs: TMsg;
procedure EatKey;
{ Clear Keyboardbuffer / Tastaturbuffer leeren }
begin
PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
end;
begin
{ Check if control pressed / uberprufen, ob Control Taste gedruckt }
if (ssCtrl in Shift) then
case key of
{ Ctrl + v }
86:
begin
{ determine if the Clipboard contains a string type }
{ uberprufen, ob es Text in der Zwischenablage hat }
if Clipboard.HasFormat(CF_TEXT) then
{ Check if text consists of numbers }
{ uberprufen, ob der Text aus Zahlen besteht }
try
StrToInt(Clipboard.AsText);
except
{ If no then don't insert text }
{ Wenn nein, dann ignoriere das Einfugen }
EatKey
end;
end;
{ Ctrl + c }
67: { do nothing / nichts machen }
else
EatKey;
end
{ else check for allowed characters such as BackSpace, RETURN...}
{ sonst auf erlaubte Zeichen uberprufen }
else if not (Char(Key) in [#8, #13, '.', '0'..'9','`'..'i' ]) then EatKey;
end;
// Use your own Popup Menu to customize paste. 

Далее: Проверить, является ли число вещественным »»