Вниз
Скачать: CL | DM;

numedit   Найти похожие ветки 

 
CAHbKA   (2003-05-25 06:44) [0]

Нужен нормальный компонент для ввода только чисел с исходником в *.pas или корректное описание всех процедур.
Требования:
1. Только цифры.
2. В качестве разделителя целой и дробной части числа можно использовать как "," , так и "." .
2. Поддержка буфера обмена по Ctrl+C, Ctrl+X, Ctrl+V, а так же Ctrl+A .
Вот и всё:)

Первые два получаются ЛеХко! А вот из-за отключенных букв... :(
Можно ли еще обойтись без хука, определить одновременное нажатие, например, Ctrl+A? Просто "A" исключить просто, а вот с Ctrl не получается:(


 
Юрий Зотов ©   (2003-05-25 07:20) [1]

Обычный Edit с замещенными KeyDown и обработчиками WM_COPY, WM_CUT, WM_PASTE и EM_SETSEL (проверка на число и откат, если не число). При обработке "А" проверяйте ShiftState, вот и все.


 
CAHbKA   (2003-05-25 07:54) [2]

Спасибо Юрий, ждал ответ именно от Вас... попробую...


 
Юрий Зотов ©   (2003-05-25 08:12) [3]

Поправка - WM_COPY и WM_CUT, конечно, трогать не нужно.


 
AbrosimovA   (2003-05-28 12:32) [4]

Если ты в событие OnKeyPress для Edit вставишь следующую строку, то тебе не придется искать другой компонент.

if not(Key in ["0".."9"],DecimalSeparator) then Key := #0;

Т.е. разрешается вводить только цифры и десятичную точку(запятую), в ином случае в Edit изменений происходить не будет.


 
Danilka ©   (2003-05-28 12:45) [5]

AbrosimovA (28.05.03 12:32)
за исключением вставки из буфера обмена и нескольких DecimalSeparator.

но все можно легко обойти, не пойму, в чем проблема...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
3-34690
Timka
2003-05-22 13:58
2003.06.12
при использовании ADO


4-35111
anod
2003-04-14 14:25
2003.06.12
RowSelect в ListView


14-35050
mox
2003-05-27 20:48
2003.06.12
Перезагрузка Windows


3-34702
softmaster
2003-05-22 23:34
2003.06.12
Пример с IBX


1-34852
Maks Realov
2003-05-30 16:48
2003.06.12
Репозитарий форм и наследуемость...




   Наверх