На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> Неправильное положение курсора в поле Edit., Borland C++ Builder v.6.0.
    Пусть есть число в Edit "555555". Курсор стоит справа после вбивания этих чисел вручную.

    Если после этого изменить значение именно программно - курсор оказывается именно слева от числа.

    Как задать правое положение, без нарушения ручного ввода?

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

          1. Считать строку, узнать размер текста.
          2. Сдвинуть курсор на нужную позицию. Например, в конец строки.
          Сообщение отредактировано: ЫукпШ -
          Подпись была выключена в связи с наложенным заземлением.
            "Сдвинуть курсор на нужную позицию" - если бы это можно было сделать - вопроса бы не было.
              http://www.cyberforum.ru/delphi-beginners/thread329624.html

              Добавлено
              ExpandedWrap disabled
                procedure TForm1.Button1Click(Sender: TObject);
                var
                  S : String;
                  i : Integer;
                begin
                  Edit1.Text := '1234567890';
                  Edit1.SetFocus;
                 
                  //Установить курсор перед первым символом.
                  Edit1.SelStart := 0;
                  Edit1.SelLength := 0;
                 
                  //Задержка в 2 секунды - для того, чтобы пользователь успел увидеть
                  //где теперь расположен курсор.
                  for i := 1 to 100 do begin
                    Application.ProcessMessages;
                    Sleep(20);
                  end;
                 
                  //Установить курсор перед вторым символом.
                  Edit1.SelStart := 1;
                  Edit1.SelLength := 0;
                  for i := 1 to 100 do begin
                    Application.ProcessMessages;
                    Sleep(20);
                  end;
                 
                  //Установить курсор перед вторым символом.
                  Edit1.SelStart := 1;
                  Edit1.SelLength := 0;
                  for i := 1 to 100 do begin
                    Application.ProcessMessages;
                    Sleep(20);
                  end;
                 
                  //Установить курсор перед пятым символом.
                  Edit1.SelStart := 4;
                  Edit1.SelLength := 0;
                  for i := 1 to 100 do begin
                    Application.ProcessMessages;
                    Sleep(20);
                  end;
                 
                  //Установить курсор перед последним символом.
                  Edit1.SelStart := Length( Edit1.Text ) - 1;
                  Edit1.SelLength := 0;
                  for i := 1 to 100 do begin
                    Application.ProcessMessages;
                    Sleep(20);
                  end;
                 
                  //Установить курсор после последнего символа.
                  Edit1.SelStart := Length( Edit1.Text );
                  Edit1.SelLength := 0;
                end;


              Добавлено
              Пробовал юзать данное свойство?
                Цитата Сергей85 @
                "Сдвинуть курсор на нужную позицию" - если бы это можно было сделать - вопроса бы не было.

                Насколько я помню:
                ExpandedWrap disabled
                  // если pos1 = pos2, тогда курсор переместиться на указанную позицию (счёт с 0)
                  ::SendMessage(hwndEdit,(UINT)EM_SETSEL,(WPARAM)(pos1),(LPARAM)pos2);
                Подпись была выключена в связи с наложенным заземлением.
                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script Execution time: 0,1052 ]   [ 15 queries used ]   [ Generated: 22.02.20, 07:09 GMT ]