С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 11.08.2021
Сообщений: 17

Запрет изменения Position при ручном вводе в Edit

29.01.2025, 10:23. Показов 8272. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане.

Есть поле Edit с параметрами только цифры и ассоциированный с ним UpDown.

Раз в 1 сек. параметр UpDown->Position может меняться отдельным потоком.

Предложите пожалуйста идеи как запретить потоку менять значение UpDown->Position если я в данный момент ввожу вручную данные в Edit?

В потоке:
C++
1
if (Form3->UpDownCodeIa->Position!= data.biutStatIn()->CodeDAC[0]) Form3->UpDownCodeIa->Position = data.biutStatIn()->CodeDAC[0];
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2025, 10:23
Ответы с готовыми решениями:

Запрет ввода букв в поле Edit
Написал следующий код, но он не дает запрета на ввод букв void __fastcall TForm1::Edit2KeyPress(TObject *Sender, wchar_t &Key) { ...

Запрет ввода символов в поле Edit
Как запретить нажатие и вставку из буфера всех символов, кроме нужных мне, к примеру разрешить вводить в поле только цифры? И еще 2-ой...

Запрет ввода определенных символов в Edit
Я искал на форуме и в гугле, нашел разные варианты, но не нашел который мне бы подошел... Ведь у меня создание эдитов в коде... А как я...

11
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,237
29.01.2025, 10:44
Использовать событие OnFocus. При фокусировании на компоненте и начале ввода запретить потоку изменять UpDown.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.01.2025, 10:49
Цитата Сообщение от pyclan-sevas Посмотреть сообщение
В потоке:
Вы что, прямо вот так, из потока, без синхронизации, обращаетесь к контролам формы? Безумно смелый программист!
0
0 / 0 / 0
Регистрация: 11.08.2021
Сообщений: 17
29.01.2025, 10:58  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
без синхронизации
Тут смысл такой, что данные отображаемые на форме, это данные полученные от железки.
Т.е. форма, это дисплей железки. Введенные данные, должны улететь в железку и если она их приняла,
летит ответ с принятыми данными и только эти данные отображаются на форме.
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,237
29.01.2025, 11:10
Лучший ответ Сообщение было отмечено pyclan-sevas как решение

Решение

OnEnter и OnExit события.
1
0 / 0 / 0
Регистрация: 11.08.2021
Сообщений: 17
29.01.2025, 11:34  [ТС]
FFPowerMan, Спасибо за совет. В OnEnter выставляю флаг, а OnExit его сбрасываю. Флаг проверяю в потоке.
Она же синхронизация получилась, по предупреждению D1973.
0
Злостный нарушитель
 Аватар для Verevkin
10242 / 5670 / 1261
Регистрация: 12.03.2015
Сообщений: 26,270
29.01.2025, 11:54
Лучший ответ Сообщение было отмечено pyclan-sevas как решение

Решение

Цитата Сообщение от pyclan-sevas Посмотреть сообщение
Спасибо за совет. В OnEnter выставляю флаг, а OnExit его сбрасываю. Флаг проверяю в потоке.
Такой флаг у компонента уже есть - метод
Delphi
1
function TWinControl.Focused: Boolean; dynamic;
1
0 / 0 / 0
Регистрация: 11.08.2021
Сообщений: 17
29.01.2025, 12:02  [ТС]
Verevkin, Да и с этим хорошо работает. Спасибо.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.01.2025, 12:12
Цитата Сообщение от pyclan-sevas Посмотреть сообщение
Она же синхронизация получилась
Нет. Для начала: что Вы имеете в виду, говоря "поток". Экземпляр класса TThread или что-то своё?
0
0 / 0 / 0
Регистрация: 11.08.2021
Сообщений: 17
29.01.2025, 12:39  [ТС]
Псевдо-поток, событие по таймеру. Отправка данных железке. Событие приема данных от железки.
Событие приема и производит размещение данных по формам.
0
Злостный нарушитель
 Аватар для Verevkin
10242 / 5670 / 1261
Регистрация: 12.03.2015
Сообщений: 26,270
29.01.2025, 12:42
Цитата Сообщение от pyclan-sevas Посмотреть сообщение
Псевдо-поток, событие по таймеру.
Ну, так не интересно!
Я так не играю...
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.01.2025, 12:42
Цитата Сообщение от pyclan-sevas Посмотреть сообщение
событие по таймеру
Ввели в заблуждение неверной терминологией...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2025, 12:42
Помогаю со студенческими работами здесь

Как запретить вводить запятую в начале и больше одной в поле Edit?
Как запретить вводить запятую в начале и больше одной в поле Edit?

Запрет вводить цифры в Edit
На код void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if(!((Key >= '0' && Key <= '9') || Key == VK_BACK)) Key =...

Запрет ввода букв в Edit-ы
Всем привет! Пишу программу на XE6 под Android. Необходимо в Edit-ы вводить только цифры и десятичную точку. Делаю так: void...

Запрет на ввод данных вручную в Edit
Как запретить ввод данных в Edit вручную? Нужно чтобы данные попадали в Edit только та ...

Запретить вводить в Edit значение, большие чем заданное
Всем привет) Подскажите пожалуйста Есть запись количество в гриде пусть там 80 как сделать чтобы больше 80 нельзя было вводить в edit...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru