|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.12.2020, 10:38 | #1 |
Пользователь
Регистрация: 09.12.2020
Сообщений: 30
|
Memo При нажатии на строке мемо2 выделяется соответствующая ей в мемо1
Подскажите. При нажатии на строке мемо2 выделяется соответствующая ей в мемо1. Заранее спасибо.
Код:
Последний раз редактировалось IvaNoff2020; 09.12.2020 в 10:41. |
09.12.2020, 11:26 | #2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Lazarus работает с UTF8 строками (символ может занимать несколько байт) в частности русские буквы занимают по два байта.
Length(...) в Lazarus работает c байт-строкой (считает число байт, но не букв). LengthUTF8(...) Цитата:
а тексты в обоих мемо одинаковы ? и назовите Мemo как-нибудь более различно чем одна цифра. Код:
программа — запись алгоритма на языке понятном транслятору
|
|
09.12.2020, 11:57 | #3 |
Пользователь
Регистрация: 09.12.2020
Сообщений: 30
|
evg_m, В memo1 записаны номера строк: от 0 допустим до 20. Такого же размера memo2 только заполнен он произвольно. Кириллицу не использую. Поэтому Length() меня вполне устраивает.
Вопрос как работает SelStart и SelLength я не совсем понимаю. Если бы у меня был не Memo, а ListBox (в нем есть свойство аналогичное интересующее меня ItemIndex). По которому я могу выделить текущую строку. В Memo не выходит. |
09.12.2020, 13:19 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
SelStart и SelLength я не совсем понимаю.
приблизительно так Код:
только конечно наоборот. находишь в полной строке(s) нужный фрагмент ( pos) это будет selStart узнаешь его длину (utf8) это будет SelLength быть может нужна просто таблица(сетка) StringGrid c двумя колонками???
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 09.12.2020 в 13:29. |
09.12.2020, 14:44 | #5 |
Пользователь
Регистрация: 09.12.2020
Сообщений: 30
|
evg_m, Это не совсем то, что мне нужно. Видимо я плохо объясняю.
В memo1 записаны номера строк. В memo2 тоже записаны строки, но содержимое их не важно. Считаю кириллица отсутствует. Чтобы не заморачиваться с модулем LazUTF8. При нажатии на строке memo2 активируется memo1 и в нем выделяется соответствующая строка (номер нажатой в memo2 строки). То есть если в memo2 нажата строка 'qwerty' и она 3 по счету. то в memo1 выделится строка '3' Сopy(s, selstart, sellength) не выделяет строку, а лишь из переданной "вырезает" ее часть (подстроку) с такого-то символа по такой-то согласно переданной длине. StringGrid тоже не подойдет. Проблема в применении SelStart и SelLength. |
09.12.2020, 15:02 | #6 | |||||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
1.
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
все это делается одной строкой Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 09.12.2020 в 15:09. |
|||||
09.12.2020, 15:37 | #7 |
Пользователь
Регистрация: 09.12.2020
Сообщений: 30
|
evg_m, Задача, чтобы правильно заработало, то что описал выше через средство отображения Memo. Иначе, я бы проще сделал: данные закинул изначально построчно в ListBox и при нажатии на одном выделял ItemIndex другого. Ладно, спасибо. Попробую через posEx и подключенной библиотеки StrUtils.
|
09.12.2020, 17:52 | #8 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
программа — запись алгоритма на языке понятном транслятору
|
10.12.2020, 13:04 | #9 |
Пользователь
Регистрация: 09.12.2020
Сообщений: 30
|
evg_m,
Сделал то, что мне нужно было. Спасибо, что пояснили, как работает selStart и selLength. Правда я без posEx() сделал. Но работает как надо. Код:
|
10.12.2020, 13:12 | #10 |
Пользователь
Регистрация: 09.12.2020
Сообщений: 30
|
IvaNoff2020,
Только инициализацию str_1 и len_1 можно удалить конечно. Их же не использую в будущем. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сделать кнопку при нажатии показывался объект, при повторном нажатии пропадал. | nyqpblcTuk | Microsoft Office Excel | 3 | 31.08.2017 14:32 |
Сколько выделяется памяти под ядро при использовании РАЕNX? | dimoni414 | Windows | 0 | 24.04.2017 19:21 |
сколько памяти выделяется под двустороннюю очередь STL при инициализации? | temp_acc | Общие вопросы C/C++ | 1 | 27.06.2012 18:11 |
кнопка выделяется при запуске | Марк Охман | Общие вопросы Delphi | 7 | 23.02.2011 18:37 |
при наведении на один текст, выделяется другой | bogachev | JavaScript, Ajax | 1 | 17.04.2009 16:48 |