Jump to content

Позиционирование курсора в поле ввода после присвоения значения


pavell

Recommended Posts

Всем доброго дня!
 
Есть такая задача: на форме имеется поле ввода (UniEdit). Задана маска ввода (InputMask.Mask='999-999-999'). После присвоения значения этому полю курсор всегда останавливается в самом конце поля, не зависимо от длины вводимого значения. Вот так:
 
1.png
 
 
А хотелось бы чтобы курсор оказался сразу после последнего значащего символа.
 
2.png
 
Это важно для меня. На самом деле, работа ведется над более существенным кодом, но все застопорилось именно из-за этой "фичи".
 
 
 
Тестовый пример:
 

 

 

Link to comment
Share on other sites

Спасибо! Мне очень приятно ответить на вопросы Пользователей, и все мы стараемся что ответы были полезными! :)

 

Еще раз пожалуйста, Вы можете уточнить Ваш вопрос, так как прикрепленные изображения не доступны, или же Вы решили проблему ?!

Link to comment
Share on other sites

  • 2 weeks later...

Здравствуйте!

 

Извините, что пропал на неопределенный срок. 

 

Да, с картинками как-то не разобрался как можно прикреплять. И с проблемой вроде бы разобрался. Правда с большим трудом, но разобрался. Т.ч. спасибо.

 

Сейчас борюсь с другой проблемой: порядком следования полей редактирования (TabOrder). Почему-то по табу курсор переходит не совсем туда, куда ожидается. Курсор даже умудряется перескочить на экранные поля родительского окна, что совсем не радует. Попробовал почитать форум. Народ уже пытался обсуждать эти вопросы. Но решений проблемы как-то не обнаружил.

 

Подскажите пожалуйста, эта проблема решена?

Link to comment
Share on other sites

Добрый день,

 

Демо проанализировал. Я его смотрел и раньше.

Но в моем случае все намного сложнее, у меня в проекте есть базовые формы. И в одной из них был снят признак NavigateKeys.HandleTabs. И видимо поэтому переход табом "пошел вразнос". Признак вернул, сейчас ситуация, вроде бы, вошла в норму. Осталось только понять почему этот признак мог быть снят. Ну буду наблюдать за поведением программы, может со временем и пойму. 

 

В любом случае спасибо за "наводку"!  :)

Link to comment
Share on other sites

  • 4 weeks later...

Добрый день!

 

Пробую такой вот код:

procedure TfrmXXX.gridMainMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  If Shift=[ssAlt] Then
    inherited;  //
end;

procedure TfrmXXX.gridMainMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  If Shift=[ssAlt] Then
    inherited;  //
end;

Но значение переменной SHIFT всегда = [], не зависимо от того нажат alt, ctrl или shift. 

Это ошибка или я что-то не правильно понимаю?

 

Спасибо!

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...