Вверх ↑
Этот топик читают: Гость
Ответов: 58
Рейтинг: 0
#1: 2018-09-30 20:19:06 ЛС | профиль | цитата
Как сделать чтобы символ подсвечивался даже если он возле других символов?
Картинка: https://hkar.ru/Vzwb
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26061
Рейтинг: 2120
#2: 2018-10-01 01:04:35 ЛС | профиль | цитата
VitiaCat писал(а):
Как сделать чтобы символ подсвечивался даже если он возле других символов?

Никак. Первый пробел в списки засветки блока игнорируется.
карма: 22

0
Ответов: 58
Рейтинг: 0
#3: 2018-10-01 14:53:38 ЛС | профиль | цитата
nesco писал(а):

VitiaCat писал(а):
Как сделать чтобы символ подсвечивался даже если он возле других символов?

Никак. Первый пробел в списки засветки блока игнорируется.

Как это?
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#4: 2018-10-01 20:07:14 ЛС | профиль | цитата
VitiaCat писал(а):
Как это?

Вот конкретно для твоего случая нужен блок { и}. Вот такой блок работать не будет из-за первого пробела. В других случаях, я не понял выражения
VitiaCat писал(а):
Как сделать чтобы символ подсвечивался даже если он возле других символов?

Случаев, когда внутри слова символ не светится, а отдельно светится не предусмотрено. Почему не работает первый пробел в блоке надо спросить автора кода поиска блоков т-ща Galkov-a
карма: 22

0
Ответов: 9906
Рейтинг: 351
#5: 2018-10-05 08:14:08 ЛС | профиль | цитата
nesco писал(а):
автора кода поиска блоков т-ща Galkov-a

никакой я не автор... просто причесал чего было, и все.

Мне трудно понять умные слова.
Будет схема с указаниями, будет разговор.
По нашим правилам, естественно
карма: 9

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2018-10-05 16:53:07 ЛС | профиль | цитата
Galkov писал(а):
Будет схема с указаниями, будет разговор

Вот схема, где не работает блок { и}

Схема

Add(MainForm,9928445,266,161)
{
Position=1
}
Add(HilightMemo,245368,322,161)
{
Left=5
Top=10
Width=375
Height=240
Font=[Courier New,10,0,0,1]
Strings=#9:приветики|12:пр и пр ип|
HilightStrings=#8:{ и}=red|
HilightFont=[Courier New,8,0,0,1]
}


Редактировалось 1 раз(а), последний 2018-10-05 16:53:21
карма: 22

0
Ответов: 9906
Рейтинг: 351
#7: 2018-10-06 13:49:38 ЛС | профиль | цитата
nesco писал(а):
Вот схема, где не работает блок

Во-первых - работает (например, в начале строки)
Во вторых - И ЧЁ ???

Пропуск пробелов после "ненайденного" - это не я придумал.
Кому-то зачем-то это надо было...
btw
придумывать цикл пропуска с вычислением результата:
  repeat inc(i) until (i>=Length(S))or(S[i+1]>' ');
Result := i - FromPos.x;
вместо одной команды:
  Result := 1;
-- это не мой стиль
Как уже говорил -- я просто причесал то, чего было.
Не занимался я изменением алгоритма парсинга.
А занимался выделением в отдельный код предпарсинга "правил подсветки".
Кто этот алгоритм придумал - не знаю.
nesco, а ты знаешь ??? (твой же элемент, вроде бы)

Собственно, возможности парсинга-то - крайне убогие...
И чтобы их менять (алгоритмически) - надо сначала долго (в смысле - хорошо) думать.
Понять чего ты хочешь.

А не буковки исправлять методом шанхаестроения ...
Вот потому и возник вопрос: И ЧЁ ???




--- Добавлено в 2018-10-06 14:03:46

Кстати о птичках...

nesco, а что это за наскальная надпись ???
(случайно наткнулся)
procedure THIHiLightMemo._work_doFind;
..............
FromPos := MakePoint(ReadInteger(_Data, _data_SearchFrom) and $ffff, ReadInteger(_Data, _data_SearchFrom) shr 16);
..............
end;

Редактировалось 2 раз(а), последний 2018-10-06 14:04:07
карма: 9

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2018-10-06 14:12:16 ЛС | профиль | цитата
Galkov писал(а):
твой же элемент, вроде бы

Я вроде только импортировал Кладовский код, минимально его трогая, особенно в области парсингов. Те я тоже не менял алгоритм.
Galkov писал(а):
Понять чего ты хочешь.

Я в принципе ничего не хочу. Просто попалась ситуация в которой не работает конкретно обозначенный блок, вот и все.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#9: 2018-10-07 09:11:35 ЛС | профиль | цитата
nesco писал(а):
Я в принципе ничего не хочу
Это было риторическое утверждение, а не личное к тебе.
Типа как общее (не специально для тебя) правило: сначала надо получить полное представление об алгоритме (в данном случае - парсинга), а потом уже, возможно, менять его детали.

В нашем случае новый (после неудачного) поиск "начинается с читаемого символа".
Так было кем-то (не мной и не тобой) заложено.
Менять ли это на "начинается со следующего символа" -- я не знаю.
Потому-что правильный алгоритм должен сначала разбить весь текст на лексемы, и засвечивать нужные из них указанным нами цветом и стилем.
Сегодня это далеко от этого.
И как сделать такое не очень понятно.
Про обратную совместимость я уже и не говорю.



А вот фигню в _work_doFind надо исправить.
карма: 9

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)