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

Выделение части строки, мышкой


Andrey Efimov

Вопрос

  • Модераторы
Опубликовано (изменено)

Ситуация такая:

Есть компонент TMemo, вводим в него строчку текста, шириной больше ширины самого компонента. Пытаемся зажав левую кнопку мышки на любой областью строчки выделять текст, продвигаясь на право, но только мы дойдём до края компонента, как выделение прекращается...

 

Пример:

Открываем стандартную демку "C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\Object Pascal\Multi-Device Samples\User Interface\ControlsDesktop". В демке выбираем вторую вкладку и заменяем первую строчку в компоненте TMemo на "Cross-platform solution available on Windows and Mac OS X Test1Test2Test3Test4Test5Test6Test7Test8Test9". Запускаем и пытаемся выделяя мышкой текст, дойти до "...Test9".

Я могу выделить только "Cross-platform solution available on Windows and Mac OS X Te". Но было замечено, что через раз выделение тупит и всё-таки начинает выделять дальше, но понять почему это происходит не всегда, я не смог :)

 

Вопросы:

У всех такая фигня?

Кто знает решение? :)

 

 

p.s. Писать в баг-трекер не предлагать, надоело уже... ещё прошлые баги висят, всё никак не починят их...

 

Платформа: Windows 7

Среда: Delphi X Seattle (без апдейта)

Изменено пользователем Andrey Efimov

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

  • 0
  • Модераторы
Опубликовано (изменено)

Сделайте ControlType = Platform, за сет этого на windows будет использоваться нативный Memo, это решит большинство проблем.

Да, вы правы. Пока, это похоже, единственное решение... Но мне оно тоже не подходит, по причине того, что платформенный Memo не подхватывает дизайн (цветовую схему) и соответственно не вписывается в общий дизайн приложения.

 

 

И ещё один косяк, АвтоСелект в Мемо тоже не отрабатывает как надо...

Изменено пользователем Andrey Efimov
Автоселект
  • 0
Опубликовано

Сделайте ControlType = Platform, за сет этого на windows будет использоваться нативный Memo, это решит большинство проблем.

Да, вы правы. Пока, это похоже, единственное решение... Но мне оно тоже не подходит, по причине того, что платформенный Memo не подхватывает дизайн (цветовую схему) и соответственно не вписывается в общий дизайн приложения.

 

 

И ещё один косяк, АвтоСелект в Мемо тоже не отрабатывает как надо...

Можно попробовать, получив хендл нативного мемо, перекрасить его winapi функциями.
  • 0
  • Модераторы
Опубликовано

TMemo использую для Логирования. Я сделал проще, просто добавил кнопку сохранения всего текста из Мемо в файл. Так отпадает необходимость выделять что-то, да и в моей ситуации будет больше подробностей в логах для анализа действий пользователя.

  • 0
Опубликовано (изменено)

Первое, что пришло на ум:



procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Single);
begin
  if ssLeft in Shift then
    if X > Memo1.Width then
      Memo1.HScrollBar.Value := Memo1.HScrollBar.Value + 10;
end;

Вроде даже работает)

Изменено пользователем FIL

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

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

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

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

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

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

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

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