Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ввод чисел перед переменными в выражении в edit.


Автор: Grol 22.5.2005, 02:31
Уважаемые Мастера Delphi! Вот у меня есть выражение: 'Eo+Em*Sin(w*t+y)'. Это
выражение в моей программе уже введенно в edit. Но перед каждой переменной в
выражении, например перед Eo или Em, могут стоять еще коэффициенты. К примеру:
'-1,5*Eo+2*Em*Sin(w*t+5*y)'. Вопрос такой, как сделать так, чтоб эти числовые
коэффициенты можно было вводить только перед переменными в выражении. Нужно
сделать так, чтоб числа не вводились между 'E' и 'o' или 'E' и 'm'. И числовые коэффициенты могут быть отрицательными и положительными, дробными и целыми а после них
обязательно должен следовать знак '*', а если забыть то он должен принудительно
ставиться!!! Помогите пожалуйста Мега Мастера Delphi!!!

P.S. Меня этот курсовик уже задолбал...:-(((

Автор: December 22.5.2005, 11:30
Ну, как вариант: в событии OnKeyPress проверять значение свойства SelStart - это даст тебе информацию о положении твоего курсора относительно ключевых элементов. Для того, тобы подавить ввод символа в этом событии, надо аргументу Key присвоить значение 0.

Автор: remax 22.5.2005, 19:07
А я бы сделал по другому:
1) В строке ввода оставил бы 'A*Eo+B*Em*Sin(C*w*t+D*y)'
2) Добавил бы на форму еще четыре соответствующих edit для ввода коэффициентов A,B,C и D. (По умолчанию в них поставил бы 1)

Таким образом, очень здорово бы облегчил себе жизнь, хотя бы тем, что для ввода коэффициентов можно использовать специализированные для чисел с плавающей запятой edit (например, из библиотеки JEDI VCL). И все. И не надо никаких сложных обработчиков и супер интерпретаторов! smile

Автор: Dynamic 23.5.2005, 08:06
Цитата(remax @ 22.5.2005, 19:07)
И не надо никаких сложных обработчиков и супер интерпретаторов!

А это смотря какое задание:
Цитата(Grol @ 22.5.2005, 02:31)
Меня этот курсовик уже задолбал


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)