Перейти к содержанию
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 пользователей онлайн

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