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

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

Предотвращение вставки недопустимых символов из буфера [D7]


User ©   (2010-04-10 16:25:00) 


Edit1KeyPress:
if not (Key in ['a'..'z', 'A'..'Z', 'а'..'я', 'А'..'Я', 'ё', 'Ё']) then Key := #0;


Пользуюсь этим нехитрым методом для предотвращения ввода в Edit недопустимых (для моей конкретной задачи) символов.

Но обнаружил, что если вставить в Эдит строку из буфера обмена, содержащую недопустимые символы (цифры), то они вставятся.

Как это можно исправить?


Blah-blah-blah...   (2010-04-10 21:55:00) [1]

SelStart := Edit1.SelStart;
Str := Edit1.Text;
for i := Length(Str) downto 1 do
 if (Str[i] in ['b', 'l', 'a', 'h']) then
 begin
   Delete(Str, i, 1);
   if (i <= SelStart) then
     SelStart := SelStart - 1;
 end;
Edit1.Text := Str;
Edit1.SelStart := SelStart;


P.S. Но, как по мне, лучше перехватывать WM_PASTE.


Anatoly Podgoretsky   (2010-04-10 18:49:00) [2]

> User  (10.04.2010 18:40:03)  [3]

Тебе все сиволы доступны, а может ты не знаешь, что строка по сути это массив символов.


Правильный$Вася   (2010-04-10 18:45:00) [3]


> у OnChange нет входящего параметра var Key: Char.

зато там есть кое-что другое


User   (2010-04-10 18:40:00) [4]


> вырезать после вставки?

Ну если не найду ничего лучшего...

> Есть ещё событие OnChange

Да, но в отличие от OnKeyPress у OnChange нет входящего параметра var Key: Char.


Демо   (2010-04-10 17:46:00) [5]


> User   (10.04.10 16:25) 


Есть ещё событие OnChange


Правильный$Вася   (2010-04-10 17:14:00) [6]

вырезать после вставки?


Наверх

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