Тема: OnKeyPress
Как обрабатывать событие OnKeyPress в форме ввода?
События OnClick недостаточно во многих случаях.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
TechnologiCS → TechnologiCS → Использование TechnologiCS API → OnKeyPress
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как обрабатывать событие OnKeyPress в форме ввода?
События OnClick недостаточно во многих случаях.
У наших контролов таких обработчиков пока нет. на внешних ActiveX форма ввода увидит все их события, но это будут внешние (не наши) контролы.
Какой ActiveX компонент можно использовать по аналогии с компонентом SpinEdit?
А где взять описание активных компонентов используемых у ВАС?
У нас в хелпе список просто, если не ошибаюсь. Подробное описание можно увидеть непосредственно в дизайнере форм, там вся информация присутствует.
Полного описания там нет (да оно и излишне в хелпе TechnologiCS). Все свойства есть в самом дизайнере (скажем так аналогично TCS Prop Explorer).
16.4.2 Обработчики (события) в форме
Вопрос по поводу события OnKeyPress возник из-за отсутствия компонента SpinEdit. Решил
фильтровать символы спомощью события OnChange. Написал такую кроху:
Sub FormEvent_Edit_1_OnObjectChange( Form, ObjName ) 'Form As ITCSForm, ObjName As String Dim n On Error Resume Next n = cInt(c_Edit_1.Text) If Err Then Call TCSApp.ShowMessageBox(Err.Source, "Îïèñàíèå: " + Err.Description) Err.Clear c_Edit_1.Text = cStr(c_Edit_1.Tag) End If c_Edit_1.Tag - cInt(c_Edit_1.Text) End Sub
В Delphi эта логика отрабатывает правильно. На каждое нажатие клавишы вызывается
подобная процедура. Каково-же было моё удивление, что в VBScript-е попадаем в неё
только при покидании поля редактирования. Почему?
ну это же не дельфа, это TechnologiCS.
а наш СalcEdit никак не подходит?
ну это же не дельфа, это TechnologiCS
На написана-то на дельфях. Так почему-же не наследуются от туда события и компоненты?
а наш СalcEdit никак не подходит?
Нет. Нужно жёстко вводить целыею И без лишнего интерфейса.
у нас много чего используется, но выводы на этом делать не следует :).
Возьмите СalcEdit лучше.
у нас много чего используется, но выводы на этом делать не следует
А надо бы. хотя бы в следующих версиях TCS.
Возьмите СalcEdit лучше.
Рад бы, да пользователь путается.
Для того, чтобы в CalcEdit можно было вводить ТОЛЬКО целые числа задайте следующие свойства:
DecimalPlaces = 0
DisplayFormat = ,0
Для того, чтобы в CalcEdit можно было вводить ТОЛЬКО целые числа задайте следующие свойства:
DecimalPlaces = 0
DisplayFormat = ,0
Конечнр это хорошо, но наглость пользователей такова, что они обязательно
воспользуются значком калькулятора. Я нашёл выход из этого положения.
Оказывается, что не надо изобретать велосипед. Разработчики компонента
Edit предусмотрели необходимость ввода, только, целого числа. Для этого
достаточно задать стиль окну TEdit - ES_NUBER. И всё!
Если уж пошла речь, то это не разработчики CaclEdit, это разработчики Windows. Только когда у вам программа после модификации стилей будет падать - не надо писать о том что программа не работает, так как стиль окна порой сильно влияет на работу всего приложения.
Если вас интересует хакерство - для этого есть масса отдельных форумов, если вас интересует нормальная работа приложения с последующей поддержкой - тогда надо пользоваться тем что предлагают разработчики (да конечно при это месть ограничения, но они есть в любых системах, а данном случае есть еще и решение).
вопрос думаю исчерпан, тему закрываю дабы не разводить пустые дискуссии.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
TechnologiCS → TechnologiCS → Использование TechnologiCS API → OnKeyPress