Перейти к содержанию
Fire Monkey от А до Я
  • 0

TEdit.SelSelText (вставка текста)


i.r.khayrullin

Вопрос

Добрый вечер! В VCL есть замечательная функция, позволяющая заменить выделенный текст требуемым. В FMX ее нет, и чем заменить, я придумать не смог.

 

Код для VCL

procedure TForm1.NButtonClick(Sender: TObject);begin
  Edit1.SetSelText(TButton(Sender).Caption);
end;

И тоже самое для FMX

procedure TForm1.NButtonClick(Sender: TObject);var
  aNew: String;
  aChar: String;
  aPos: Integer;
begin
  aChar:= TButton(Sender).Text;
  aPos:= Edit1.SelStart;
  Edit1.DeleteSelection;
  aNew:= Edit1.Text;
  aNew.Insert(aPos, aChar);
  Edit1.Text:= aNew;
  Edit1.SelStart:= aPos + 1;
end;

Есть идеи, как это можно реализовать красивее и правильнее?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Сделайте отдельным методом и оберните это в хелпер, к примеру.

Аналогичного метода вроде как нет, даже TCustomEdit.PasteFromClipboard использует похожий механизм.

Ссылка на комментарий
  • 0

Сделайте отдельным методом и оберните это в хелпер, к примеру.

Аналогичного метода вроде как нет, даже TCustomEdit.PasteFromClipboard использует похожий механизм.

Жаль, но по всей видимости вы правы :(

 

StringReplace, не?

К сожалению, StringReplace заменит первое вхождение в строке, если есть участок, аналогичный выделенному.

Ссылка на комментарий
  • 0
  • Администраторы

У TEdit, есть специальный метод по замене выделенного текста новой строкой:

procedure Replace(const AStartPos: Integer; const ALength: Integer; const AStr: string);

Поэтому в вашем случае замена будет выглядить так:

Edit.Replace(Edit.SelStart, Edit.SelLength, NewString);
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...