Вверх ↑
Этот топик читают: Гость
Ответов: 67
Рейтинг: 1
#1: 2022-01-24 15:10:24 ЛС | профиль | цитата
Всем Доброго дня! Собственно вся суть ясна из gif картинки.
Картинка.gif


Код.
Add(MainForm,2953706,329,126)
{
Width=410
Height=172
}
Add(Edit,1271994,427,105)
{
Left=20
Top=20
Width=135
Text=""
DataType=4
Point(doEnabled)
link(onChange,10557662:doText,[])
}
Add(Edit,10557662,511,105)
{
Left=165
Top=20
Width=135
Text=""
DataType=4
Point(doEnabled)
}


Собственно как эта проблема проявила себя, я пытался отключать поля Edit по условию.
Вот схема
Add(MainForm,2953706,322,266)
{
Width=1225
Height=694
link(onCreate,14093194:doEvent3,[])
}
Add(Hub,14093194,469,266)
{
InCount=3
link(onEvent1,8883743:doWork1,[])
}
Add(MultiElement,8883743,553,266)
{
link(Data1,3320200:Text,[(559,231)(524,231)])
link(Data2,10557662:Text,[(566,232)(622,232)])
link(onEvent1,3320200:doEnabled,[(597,272)(597,240)(506,240)(506,209)])
link(onEvent2,10557662:doEnabled,[(604,279)(604,209)])
}
BEGIN_SDK
Add(EditMulti,6633136,21,21)
{
EventCount=2
WorkCount=1
DataCount=2
Width=573
Height=291
link(doWork1,14836200:doEvent1,[(123,27)(123,223)])
}
Add(If_else,2752127,294,245)
{
Type=2
Op2=Integer(0)
link(onTrue,7437257:doWork1,[])
link(onFalse,7437257:doWork2,[])
link(Op1,6633136:Data1,[(300,116)(27,116)])
}
Add(If_else,5154915,329,133)
{
Type=2
Op2=Integer(0)
link(onTrue,6117861:doWork1,[])
link(onFalse,6117861:doWork2,[])
link(Op1,6633136:Data2,[(335,109)(34,109)])
}
Add(Hub,14836200,154,217)
{
InCount=3
link(onEvent1,5154915:doCompare,[(324,223)(324,139)])
link(onEvent2,2752127:doCompare,[(231,230)(231,251)])
}
Add(ChanelToIndex,6117861,385,133)
{
link(onIndex,6633136:onEvent1,[(528,139)(528,27)])
}
Add(ChanelToIndex,7437257,371,245)
{
link(onIndex,6633136:onEvent2,[(541,251)(541,34)])
}
END_SDK
Add(Edit,3320200,518,189)
{
Left=20
Top=20
Width=135
Text=""
DataType=4
Point(doEnabled)
link(onChange,14093194:doEvent2,[(562,195)(562,179)(450,179)(450,279)])
}
Add(Edit,10557662,616,189)
{
Left=165
Top=20
Width=135
Text=""
DataType=4
Point(doEnabled)
link(onChange,14093194:doEvent1,[(678,195)(678,162)(433,162)(433,272)])
}


Редактировалось 3 раз(а), последний 2022-01-24 15:30:35
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26066
Рейтинг: 2120
#2: 2022-01-24 17:27:31 ЛС | профиль | цитата
Я сам не понял, почему так, кто-то же ведь так сделал. Баг(???) кроется вот здесь

   else if s = '' then
begin
ChangeEvent := false;
Control.Text := '0';
FOld := '0';
end;
Если поставить ChangeEvent := true, то будет нормально отрабатывать полное удаление нумерик-строки забоем. Я опасаюсь пока править на SVN, надо подождать ответы коллег по этому вопросу. А то исправишь, а потом визги поднимуться. Хотя я бы исправил.

--- Добавлено в 2022-01-24 17:32:07

Pavel, если тебе очень это надо, то можешь у себя исправить код в модуле hiEdit.pas, найдя, приведенный мной, участок кода.

Редактировалось 3 раз(а), последний 2022-01-24 17:32:07
карма: 22

1
Голосовали:Pavel
Ответов: 284
Рейтинг: 23
#3: 2022-01-24 18:30:36 ЛС | профиль | цитата
Pavel писал(а):
Собственно вся суть ясна из gif картинки.


Точно

Редактировалось 3 раз(а), последний 2022-01-24 18:46:57
карма: 2
0
Ответов: 8888
Рейтинг: 823
#4: 2022-01-24 18:36:12 ЛС | профиль | цитата
nesco, пустая строка при текстовых данных соответствует "0" для численных данных. В коде это и отображено, я считаю правильно
карма: 19

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#5: 2022-01-24 18:41:11 ЛС | профиль | цитата
envoy_sky писал(а):
У меня нормально работает.

Ты забоем попробуй удалить последний символ.
Леонид писал(а):
пустая строка при текстовых данных соответствует "0" для численных данных. В коде это и отображено, я считаю правильно

Проблема не в этом, проблема в том, что при забивании данных забоем, при уничтожении последнего символа в поле записывается "0", но этот "0" не выдается событием onChange (в видео это очень хорошо заметно, при забое появляется "0" в левом поле, но в правом так и остается "1"). Я описал даже, где это в коде, там, при записи "0" в поле почему-то блокируется его выдача событием onChange. Мне интересно -- кто это сделал и зачем? Кто сделал, я кажется догадываюсь, но вот зачем и для чего -- ???

Редактировалось 5 раз(а), последний 2022-01-24 18:48:02
карма: 22

0
Ответов: 284
Рейтинг: 23
#6: 2022-01-24 18:47:30 ЛС | профиль | цитата
ошибка есть
карма: 2
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#7: 2022-01-24 18:49:45 ЛС | профиль | цитата
envoy_sky писал(а):
ошибка есть

Я тоже считаю это ошибкой, но может есть кто, кто считает что это должно быть именно так.

--- Добавлено в 2022-01-24 18:54:48

ЕМНИП, то нумерик-ввод добавлял Galkov, сомневаюсь, что он допустил ошибку. Значит, у него были какие-то мотивы. Galkov давно у же не заходит на форум, Tad-a уже нет с нами, Леонид, похоже, не знает, я так точно не знаю -- нафига это надо. Может еще кто остался, кто может вразумительно ответить на этот вопрос.

Редактировалось 3 раз(а), последний 2022-01-24 18:56:17
карма: 22

0
Ответов: 8888
Рейтинг: 823
#8: 2022-01-24 20:40:48 ЛС | профиль | цитата
nesco, арифметику забыли? Коли автор установил числовой тип данных, это предполагает использование их в вычислениях, в т. ч. и делении и отсутствие события при этом вполне логично во избежание ошибок.
карма: 19

0
Ответов: 67
Рейтинг: 1
#9: 2022-01-24 21:14:26 ЛС | профиль | цитата
Леонид, Как по мне, отсутствие события после действия, это и есть ошибка.

Редактировалось 1 раз(а), последний 2022-01-24 21:22:45
карма: 1

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#10: 2022-01-24 21:41:34 ЛС | профиль | цитата
Таак, понятно. Сделаю ни тем, ни другим. Добавлю новое свойство -- OnChngDelNumEnd (дефолтное состояние -- false), которым можно будет управлять событием onChange при добавлении пустой строки или удалении последнего символа.

--- Добавлено в 2022-01-24 21:50:29

Добавил, проверяйте.

Редактировалось 1 раз(а), последний 2022-01-24 21:50:29
карма: 22

0
Ответов: 67
Рейтинг: 1
#11: 2022-01-24 21:59:57 ЛС | профиль | цитата
nesco, Класс ! В моей схеме работает без нареканий.
карма: 1

0
Ответов: 8888
Рейтинг: 823
#12: 2022-01-24 22:43:34 ЛС | профиль | цитата
nesco, "и нашим, и вашим" это так называется
карма: 19

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