Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2013, 14:20   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Sibedir , if Sender=edit1 then - лишний заморачивающий код, а if not Edit2.Focused then не заморачивающий код? Масло-маслянное, а суть та же
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.02.2013, 15:14   #12
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Масло-маслянное
Масло-маслянное - это когда тоже самое много раз
Цитата:
Сообщение от Аватар Посмотреть сообщение
а суть та же
Как раз не та же.
----------------------------------------------------------------------
"if Sender=edit1 then" нужно воизбежание применения лишних обработчиков (для 2-х эдитов это лишнее, ИМХО)
----------------------------------------------------------------------
"if not Edit2.Focused" нужно для
Цитата:
Сообщение от Host-2013 Посмотреть сообщение
надо чтобы ввел в Edit1 текст, во 2 изменился текст, но не менялся в 1, в то же время чтобы потом во 2 ввести текст, и изменился в 1, не меняясь во 2
Короче, я понял что вы просто не поняли вопрос
Пояснение:
Например, при изменении Edit1 произойдет OnChange для него. Будет выполнен код Edit2.Text := ..., что приведет к вызову OnChange для Edit2, что всвою очередь выполнит код Edit1.Text := .... Представьте теперь, что в Edit1 "123456". Пользователь хочет изменить его на "-1.234e056" и например ошибается при вводе: вместо "e" вводит "у".
Sibedir вне форума Ответить с цитированием
Старый 03.02.2013, 15:55   #13
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
raxp, Stilet - 2 с минусом. Как раз этого ТС и хочет избежать.
1. Зачем нужно обоим эдитам назначать один обработчик, если для каждого из них свой код нужен. ...[/CODE]
не хочу ругаться, но минус вам , не приведет ...а потому, что повело вас не туда. Я не выкладывал бы код, если бы его не проверял. Все работает так как и требуется. И кстати, тема эта с конвертором не первая на форуме.

Для особо умных вот само это примитивное приложение:
Вложения
Тип файла: zip raxp_конвертор величин.zip (207.6 Кб, 5 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.02.2013, 16:24   #14
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

raxp, попробуйте ввести в вашей программе в edit1 (или 2, не важно) значение "12e34".
Sibedir вне форума Ответить с цитированием
Старый 03.02.2013, 16:38   #15
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...а нафига? Вы обработчик видели, прокрутите посты назад и увидите что ваше "e" вопроса ТС не касается.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.02.2013, 16:50   #16
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...а нафига?
А вы это спросите у безимянного святого пользователя. И только не говорите, что ему этого делать нельзя.
1.
Цитата:
Сообщение от raxp Посмотреть сообщение
"e" вопроса ТС не касается.
Поясни, где именно это можно понять
2.
Представьте, что пользователь хотел ввести "1234" и вместо "2" ввел "q" (нечаяно нажал).

Ввод данных пользователем в едит не должен (ИМХО) влиять на самого себя. Получается что-то типа циклической ссылки. Нужно либо менять значение по OnExit или блокировать изменение элемента занятого пользователем по Focused. Host-2013 вёл реч именно о OnChange, поэтому я выбрал второй способ с Focused.

Последний раз редактировалось Sibedir; 03.02.2013 в 16:53.
Sibedir вне форума Ответить с цитированием
Старый 03.02.2013, 17:12   #17
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Так, Sibedir, прокрутите посты назад до своего поста и почитайте внимательно про события, которые якобы вызовут друг друга. Ремарка касается именно этого, а не последующих изысков с вводом некоего "e" степени, которое в случае денежной величины излишня. Оки?

Таким образом, если еще никак, запустите приложенный пример и убедитесь, что ввод значения в любой Edit НЕ влияет на само себя.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.02.2013, 17:36   #18
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
Так, Sibedir, прокрутите посты назад до своего поста и почитайте внимательно про события, которые якобы вызовут друг друга.
...
Таким образом, если еще никак, запустите приложенный пример и убедитесь, что ввод значения в любой Edit НЕ влияет на само себя.
Я запускал именно Ваш (можно и на Вы) exe. Там ввод в эдит влияет сам на себя. Пока пользователь редактирует содержимое эдита (Focused = True), нужно запретить его программное изменение. Иначе любая ошибка (а иногда и неошибка) приведет к неожиданному (с точки зрения пользователя) поведению программы.

Цитата:
Сообщение от Host-2013 Посмотреть сообщение
понадобилось сделать конвертер одной величины в другую
Про спецификацию данных речи не идет

Цитата:
Сообщение от raxp Посмотреть сообщение
Ремарка касается именно этого, а не последующих изысков с вводом некоего "e" степени, которое в случае денежной величины излишня.
А что, 1.23е03 доллоров не бывает.

Последний раз редактировалось Sibedir; 03.02.2013 в 17:50.
Sibedir вне форума Ответить с цитированием
Старый 03.02.2013, 17:49   #19
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Я запускал именно Ваш (можно и на Вы) exe. Там ввод в эдит влияет сам на себя
нет, не влияет http://www.youtube.com/watch?v=CMStgBoFCjA:


Цитата:
можно и на Вы
и где же я вам тыкал, ась?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.02.2013, 17:55   #20
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
и где же я вам тыкал, ась?
Это я тыкал. Привык на ты на форуме общаться.
А, нет, это я с ТС на ты.

Цитата:
Сообщение от raxp Посмотреть сообщение
Влияет, влияет.
Введите "1001, а потом исправте на "2001".
[1]
[0]
[0]
[1]
[<-]
[<-]
[<-]
[Backspace]


Кстати, в вашем же видео на 00:08 при стерании "9" внезапно появилаяь "1". А ведь вы её не вводили. Потом её пришлось удалять.

Последний раз редактировалось Sibedir; 03.02.2013 в 18:01.
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертер sent161rus Общие вопросы .NET 1 26.08.2011 17:02
Конвертер БД Vlaar Фриланс 3 22.12.2010 09:06
Конвертер VanHelsing Софт 0 22.07.2010 11:46
Конвертер на С++ VanHelsing Общие вопросы C/C++ 5 21.07.2010 15:01
конвертер malevich Общие вопросы Delphi 10 14.02.2007 23:19