Страница: 1 |
Страница: 1 |
Вопрос: Курсор в TextBox'e
Добавлено: 17.07.06 14:21
Автор вопроса: Екатерина
Нужно знать позицию курсора в TextBox'e для обработки введенного пользователем символа, анализирую арифметическое выражение, а также если можно подскажите можно ли записав это выражение как String какой либо встроеннойфнукцией высчитать его
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #1
Добавлено: 17.07.06 15:12
1. Если я правильно понял, то тебе нужно свойство SelectionStart (возможно вместе со свойствами SelectionLength и SelectionText)
2. Встроенной нет
Номер ответа: 2
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #2
Добавлено: 17.07.06 16:47
1. Рискну предположить, что текст будет многострочным - тогда понадобится еще и номер строки?
2.Если речь идет о несложных арифмитических действиях (+,-,/,*) то это всего лишь небольшой парсинг и выполнение впоследствии действий. Дальше - больше (скажем учет скобок). В общем чем дальше в лес, тем толще партизаны.
Номер ответа: 3
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #3
Добавлено: 18.07.06 05:28
через WINApi это вглядит так:
hEditCtrl=GetDlgItem(hWnd,ID_of_TextBox) ' получаем
хандл TexBox
SendMessage (hEditCtrl,EM_GETSEL,VARPTR dwCurrentPos) ,VARPTR(dwEndSelect) )
В dwCurrentPos ,будет текущая позиция в TextBoxe
Вместо VARPTR (dwEndSelect) можно поставить NULL
если нужна только текущая позиция.
По поводу "какой либо встроенной фнукцией высчитать его"
Насколько я знаю это обязаности програмиста
Надо программно или ручками выделить текст
потом
SendMessage (hEditCtrl,WM_COPY,BYVAL 0, BYVAL 0 )
Выделеный текст уйдет в клипбоард, извлечть
из клипбоард и пропарсить.
Или
SendMessage(hEditCtrl,WM_GETTEXT,NumberCharToCopy,VARPTR (Buffer))
В Buffer нужный текст.
Но разбирать что это текст или мат.выражение
придется вручную.
Удачи.