Вверх ↑
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
#1: 2009-12-03 18:35:52 ЛС | профиль | цитата
Заметил две ошибки
code_15878.txt

1. Если
- DateType = Number или IntegerNumber или HexNumber или FloatNumber
- при полном удалении значения Edit
- и нажатия enter,
то событие onEnter не возникает

2. Если
- DateType = Number или IntegerNumber или HexNumber или FloatNumber
- при полном удалении значения Edit
- нажатия недопустимой клавиши,
то появляется значение последнего удаленного знака

карма: 1

0
файлы: 1code_15878.txt [1.2KB] [198]
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2009-12-03 18:50:34 ЛС | профиль | цитата
3. Если
- DateType = Number или IntegerNumber или HexNumber или FloatNumber
- при значении св-ва Text отличном от <пусто>
- нажатия любой клавиши,
то поле очищается
карма: 10
1
Голосовали:miver
Гость
Ответов: 17029
Рейтинг: 0
#3: 2009-12-04 16:24:18 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 23:08:09
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#4: 2009-12-04 16:26:27 ЛС | профиль | цитата
Проблема с не выдачей onEnter решается банальным условием:
#pas
function THIEdit.NoText;
var s:string;
st:integer;
begin
if control.text = '' then begin
dtString(dt,'');
Result := true;
end else begin
s := Control.Text;
st := Control.SelStart;
Result := func(LowerCase(s),dt);
if Result then
begin
FPos := st;
Fold := s;
Exit;
end
else if not func(LowerCase(s)+'0',dt) then
begin
ChangeEvent := false; // Установка Control.Text вызывает _OnChange !!!
Control.Text := FOld;
Control.SelStart := FPos;
end;
end;
end;
А вот проблему с очисткой Edit-а решить не удалось, поскольку при установке ловушки на inherited; в _onKeyDown все нормально работало, хотя без нее не работает
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2009-12-04 17:49:22 ЛС | профиль | цитата
это не ошибки. Пустая строка не считается числом. При вводе некорректного значения происходит возврат к предыдущему верному значению. В рамках заявленной ф-ности ошибки отсутствуют.
карма: 27
0
Ответов: 758
Рейтинг: 112
#6: 2009-12-05 18:03:38 ЛС | профиль | цитата
Dilma писал(а):
Пустая строка не считается числом

Но пустое место и не должно считается строкой, а должно быть пустым значением (что-то типа NULL)

Dilma писал(а):
При вводе некорректного значения происходит возврат к предыдущему верному значению.

Такое поведение очень странно. Всегда думал, если клавиша недопустима, то при ее нажатии не должно происходить никакого события вообще. (кроме ошибок)
А тут то значение пропадает, то что-то появляется

карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#7: 2009-12-05 21:40:40 ЛС | профиль | цитата
Тогда хотя бы последним верным значением при старте проги сделать строку из св-ва Text надо бы
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2009-12-07 15:10:26 ЛС | профиль | цитата
закоммитил альтернативное исполнение контроля ввода числовых значений в Edit.
карма: 27
2
Голосовали:Assasin, miver
Разработчик
Ответов: 4698
Рейтинг: 426
#9: 2009-12-07 15:29:50 ЛС | профиль | цитата
Еще в баг-трекере #75 надо закрыть
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2009-12-07 15:37:06 ЛС | профиль | цитата
ну если автор сообщения #75 более притензий по работе элемента в указанных режимах не имеет, то закроем
карма: 27
0
Ответов: 758
Рейтинг: 112
#11: 2009-12-07 16:53:26 ЛС | профиль | цитата
Dilma писал(а):
ну если автор сообщения #75 более притензий по работе элемента в указанных режимах не имеет, то закроем

ПрЕтензий нет и не было, так что закрытие сообщения #75 на Вашем усмотрении

карма: 1

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)