скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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



Оформил: DeeCo

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. 





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook