Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

заблокировать(запретить) ввод в TEdit [D7, XP]


Страницы:   1 2 3

zol ©   (2007-01-02 20:12:00) 

Здравствуйте.Подскажите как можно заблокировать(запретить) ввод текста и символов в TEdit.Чтоб в него можно было вводить только цифры и точку(или запятую). короче говоря для ввода с подальшей работой математикu...


zol   (2007-01-02 21:02:00) [41]


> Спасибо! а то случайно ввожу какой-нить знак - и сразу матюки
> на экране.

Присоединяюсь!


Chort   (2007-01-02 21:00:00) [42]


> azl ©   (02.01.07 20:34) [2]

Спасибо! а то случайно ввожу какой-нить знак - и сразу матюки на экране.


azl   (2007-01-02 20:34:00) [43]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var                                          //цифровая маска
 vrPos,vrLength,vrSelStart : byte;
const
 i : byte=1; //I+1 = количество знаков после запятой (в данном случае - 2 знака)
begin
 with Sender as TEdit do
  begin
    vrLength:=Length(Text); //определяем длину текста
    vrPos:=Pos(',', Text); //проверяем наличие запятой
    vrSelStart:=SelStart; //определяем положение курсора
  end;

 case Key of '0'..'9' : begin
   //проверяем положение курсора и количество знаков после запятой
   if (vrPos>0)and(vrLength-vrPos>I)and(vrSelStart>=vrPos) then
      Key:=#0; //"погасить" клавишу
 end;
 ',','.' : begin
 //если запятая уже есть или запятую пытаются поставить перед числом или никаких цифр в поле ввода еще нет
 if (vrPos>0)or(vrSelStart=0)or(vrLength=0) then
    Key:=#0 //"погасить" клавишу
 else Key:=#44; //всегда заменять точку на запятую
 end;
 #8 : ; //позволить удаление знаков клавишей 'Back Space'
 else Key := #0; //"погасить" все остальные клавиши
end;

end;


Desdechado   (2007-01-02 20:31:00) [44]

TMaskEdit
или делать постпроверку после ввода перед использованием


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо