Jump to content


Photo

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

cursor position entry

  • Please log in to reply
9 replies to this topic

#1 pavell

pavell

    Member

  • Members
  • PipPip
  • 14 posts

Posted 28 November 2016 - 10:59 AM

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

 

 


  • 0

#2 Delphi Developer

Delphi Developer

    Advanced Member

  • Moderators
  • 3038 posts

Posted 28 November 2016 - 11:45 AM

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

 

Какую версию UniGUI Вы используете ?!


  • 0

#3 pavell

pavell

    Member

  • Members
  • PipPip
  • 14 posts

Posted 28 November 2016 - 01:13 PM

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

 

Версия: 0.99.96.1321

 

Очень рад что Вы ответили!  Спасибо!


  • 0

#4 Delphi Developer

Delphi Developer

    Advanced Member

  • Moderators
  • 3038 posts

Posted 28 November 2016 - 03:58 PM

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

 

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


  • 0

#5 pavell

pavell

    Member

  • Members
  • PipPip
  • 14 posts

Posted 12 December 2016 - 08:37 AM

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

 

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

 

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

 

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

 

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


  • 0

#6 Delphi Developer

Delphi Developer

    Advanced Member

  • Moderators
  • 3038 posts

Posted 12 December 2016 - 09:30 AM

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

 

Думаю здесь "проблем" не должно быть, можете ли Вы проанализировать этот демо пример?:

FMSoft\Framework\uniGUI\Demos\Desktop\FormNavigate

  • 0

#7 pavell

pavell

    Member

  • Members
  • PipPip
  • 14 posts

Posted 13 December 2016 - 09:07 AM

Добрый день,

 

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

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

 

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


  • 0

#8 Delphi Developer

Delphi Developer

    Advanced Member

  • Moderators
  • 3038 posts

Posted 13 December 2016 - 09:50 AM

Какую версию и сборку UniGUI вы используете ?!


  • 0

#9 pavell

pavell

    Member

  • Members
  • PipPip
  • 14 posts

Posted 13 December 2016 - 12:13 PM

Все та же: Версия: 0.99.96.1321. Это демо-версия. На сколько понимаю это последняя?


  • 0

#10 pavell

pavell

    Member

  • Members
  • PipPip
  • 14 posts

Posted 09 January 2017 - 12:08 PM

Добрый день!

 

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

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. 

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

 

Спасибо!


  • 0





Also tagged with one or more of these keywords: cursor, position, entry

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users