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

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

как организовать ввод в edit


Страницы:   1 2

skilful ©   (2010-04-27 20:20:00) 

всем привет.

как организовать контроль ввода данных в edit - необходимо вводить HEX число
я делаю в

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

if not (Key in [ #8,#127, '0'..'9', 'a'..'f', 'A'..'F']) then
key := #0;

но в этом случае невозможно в edit вставлять значение из буфера обмена (по ctrl + v). Как это победить?


skilful   (2010-04-27 21:17:00) [21]

в моей задаче необходимо выборочно из hex делать dec, причем чисел достаточно много. "кривизны" данных, попадающих в программу, нет. Так что ctrl+v было бы удобным...


Lyonux   (2010-04-27 20:58:00) [22]


> {RASkov} ©   (27.04.10 20:51) [10]
> > [7] Lyonux ©   (27.04.10 20:39)> Нет нет, "v" у него разрешено))
> условие стоит: if not ... > then key:=#0;Как же разрешено,
>  если нажата V, а она не в допустимых символах, тогда клавиша
> "затирается" #0

Грешу( Посчитала весь алфавит..всё моя невнимательность) Ну тогда товарищу можно посоветовать менюшку и shift+Insert) Этого никто не отменял :)
А ещё можно добавить в условие символ 'v') Но это добавит лишних проблем, я думаю) Так что я последний абзац я не писала)


{RASkov}   (2010-04-27 20:51:00) [23]

> [7] Lyonux ©   (27.04.10 20:39)
> Нет нет, "v" у него разрешено)) условие стоит: if not ...
> then key:=#0;

Как же разрешено, если нажата V, а она не в допустимых символах, тогда клавиша "затирается" #0


{RASkov}   (2010-04-27 20:48:00) [24]

лучше уж на WM_PASTE среагировать...


Lyonux   (2010-04-27 20:41:00) [25]

так в чём смысл разрешения обработки ctrl+v?) В привычном для пользователя хоткее или возможности вставки?)


Lyonux   (2010-04-27 20:39:00) [26]


> {RASkov} ©   (27.04.10 20:32) [2]

> В OnKeyPress не все клавиши попадают.... Ctrl туда не попадает,
>  а v ты запретил... + [1]

Нет нет, "v" у него разрешено)) условие стоит: if not ... then key:=#0;
Но смысла в этой обработке ctrl+v, я думаю, нет) Если, конечно, не стоит обработчик на какой-нибудь кнопке: if not ... then exit{show.messege('')} else begin ...;
И всё равно не нужна здесь обработка ctrl+v, я так думаю)


DVM   (2010-04-27 20:38:00) [27]


> (Key in [ #8,#127, '0'..'9', 'a'..'f', 'A'..'F'])

кстати, в Delphi 2009-2010 это некошерная теперь запись. CharInSet надо


{RASkov}   (2010-04-27 20:35:00) [28]

> [3] Lyonux ©   (27.04.10 20:33)
> Предлагаю такой вариант) Попробуйте :)

а как же попап меню и "Вставить"? :)


{RASkov}   (2010-04-27 20:33:00) [29]

> [0] skilful ©   (27.04.10 20:20)

 
  > Вас не смущает тот факт, что по ctrl + v в едит может быть
  > вставлено что угодно?)
 

попробуй комбинацию Shift+Ins


Lyonux   (2010-04-27 20:33:00) [30]

Предлагаю такой вариант) Попробуйте :)

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

if not ((Key in [ #8,#127, '0'..'9', 'a'..'f', 'A'..'F']) and ((Key = ord('V')) and (ssCtrl in Shift))) then
key := #0;


{RASkov}   (2010-04-27 20:32:00) [31]

> [0] skilful ©   (27.04.10 20:20)
> но в этом случае невозможно в edit вставлять значение из
> буфера обмена (по ctrl + v). Как это победить?

В OnKeyPress не все клавиши попадают.... Ctrl туда не попадает, а v ты запретил... + [1]


Lyonux   (2010-04-27 20:23:00) [32]

Вас не смущает тот факт, что по ctrl + v в едит может быть вставлено что угодно?)


Страницы:   1 2

Наверх

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