Вверх ↑
Этот топик читают: Гость
Ответов: 1304
Рейтинг: 405
#46: 2009-08-26 23:37:15 ЛС | профиль | цитата
unalex, все правила подсветки предусмотреть наверное нельзя. В твоём случае возможно подойдёт эта схема.
code_14707.txt

Заранее могу предвидеть замечание что заглавние буквы в тексте песни буду тоже подсвечены, но для создания соответствующего правил необходимо изменить условия задачи. К примеру к ABCDEFGH добавить сивол ^ или ', в тексте песни такого сочетания явно не будет.
карма: 3

0
файлы: 1code_14707.txt [7.3KB] [365]
Ответов: 899
Рейтинг: 43
#47: 2009-08-27 02:09:24 ЛС | профиль | цитата
MAV, Я тоже так думаю, что единственно возможный вариант - обрамлять аккорды спецсимволами, типа
-Am- - такое сочетание в тексте не встретится

хотя хотелось бы вовсе без спецсимволов, ведь есть же признак - в конце каждого аккорда обязательно будет либо пробел либо знак табуляции либо перевод каретки, но наверно такой возможности в компоненте нет
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#48: 2009-08-27 02:20:19 ЛС | профиль | цитата
unalex писал(а):
в конце каждого аккорда обязательно будет либо пробел либо знак табуляции либо перевод каретки

Гы, а самому попробовать не вариант, используя группы, вот только перевод каретки и табуляцию применять не стоит, самое лучшее -- пробел



Add(MainForm,13278793,189,210)
{
Width=536
}
Add(HilightMemo,1353078,259,203)
{
Width=528
Height=266
Align=5
Font=[Courier,10,3,128,0]
Strings=#27: Am C |29:Die Nacht offnet ihren Schoss|18: F E |26:Das Kind heisst Einsamkeit|26: Am C |26:Es ist kalt und regungslos|25: F E |27:Ich weine leise in die Zeit|29:Ich weiss nicht wie du heisst|32:Doch ich weiss dass es dich gibt|25:Ich weiss dass irgendwann|20:Irgendwer mich liebt|
HilightStrings=#11:{A }=Blue=B|11:{B }=Blue=B|11:{C }=Blue=B|11:{D }=Blue=B|11:{E }=Blue=B|11:{F }=Blue=B|11:{G }=Blue=B|11:{H }=Blue=B|0:|12:{Am }=Blue=B|12:{Bm }=Blue=B|12:{Cm }=Blue=B|12:{Dm }=Blue=B|12:{Em }=Blue=B|12:{Fm }=Blue=B|12:{Gm }=Blue=B|12:{Hm }=Blue=B|
HilightFont=[Courier New,8,0,0,1]
HilightCaseSens=0
RightMargin=1
}


или первый вариант



Add(MainForm,2953706,231,308)
{
Width=536
}
Add(HilightMemo,2746831,301,301)
{
Width=528
Height=266
Align=5
Font=[Courier,10,3,128,0]
Strings=#7:Em C G |53:I could bet on new-years eve he'd call me up at night|7:Em C D |60:From the other side of the world Ed was always there alright|10:Am G D Am |65:Ed's got the looks of a movie star Ed's got the smile of a prince|9:D Em C D |53:He ride a bike instead of a car I wanna be his friend|
HilightStrings=#11:{A }=Blue=B|11:{B }=Blue=B|11:{C }=Blue=B|11:{D }=Blue=B|11:{E }=Blue=B|11:{F }=Blue=B|11:{G }=Blue=B|11:{H }=Blue=B|0:|12:{Am }=Blue=B|12:{Bm }=Blue=B|12:{Cm }=Blue=B|12:{Dm }=Blue=B|12:{Em }=Blue=B|12:{Fm }=Blue=B|12:{Gm }=Blue=B|12:{Hm }=Blue=B|
HilightFont=[Courier New,8,0,0,1]
HilightCaseSens=0
RightMargin=1
}


Как видно, прекрасно все работает, надо только не бояться ставить эксперимент
карма: 22

0
Ответов: 54
Рейтинг: 2
#49: 2009-08-27 22:35:23 ЛС | профиль | цитата
Незнаю баг, либо так и должно быть:

Когда подается текст (любой длинны) на точку doAdd, при значении свойства ReadOnly в True, то строка не вставляется А мне нужно вставлять строки в этот компонент, с ReadOnly = True, как быть doText не предлагать, в рамках поставленной задачи сия точка не уместна

P.S. - версия HiAsm 4.03 b180

---------------------------------------------
UPD:

Пока решил сию проблему так:

Строки сначала вставляются в StrList, потом уже автоматически при изменении строк в StrList, весь список подается на doText компонента HiLightMemo, в принципе устаривает такой расклад, но хотелось бы без лишних компонентов, как я написал чуть выше. Вопрос о о наличии "бага" остается открытым...

Еще один нюанс: автопрокрутка вертикального скролла работает или как Или надо переводить каретку в конец новой строки чтобы скролл автоматом вставал вниз Странно както, надеюсь на разъеснение
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#50: 2009-08-27 23:06:11 ЛС | профиль | цитата
220v писал(а):
А мне нужно вставлять строки в этот компонент, с ReadOnly = True, как быть

Очень просто: Подаем 0 на точку doReadOnly, включается режим редактирования, подаем на точку doAdd нужную строку, затем подаем 1 на точку doReadOnly, включая запрет редактирования. Иначе -- никак.
------------ Дoбавленo в 23.08:
Как-то вот так, должно работать



Add(MainForm,2953706,63,119)
{
}
Add(HilightMemo,13435070,231,161)
{
Left=15
Top=15
Width=345
Height=210
Font=[Courier New,8,0,0,1]
HilightFont=[Courier New,8,0,0,1]
ReadOnly=0
Point(doReadOnly)
}
Add(Hub,2051294,140,203)
{
OutCount=3
link(onEvent1,4499107:doWork1,[])
link(onEvent2,13435070:doAdd,[(163,216)(163,167)])
link(onEvent3,4499107:doWork2,[(168,223)(168,216)])
}
Add(ChanelToIndex,4499107,182,203)
{
link(onIndex,13435070:doReadOnly,[])
}
Add(Check,14108975,63,203)
{
Caption="doAdd"
link(onEvent,2051294:doEvent1,[])
}

карма: 22

0
Ответов: 54
Рейтинг: 2
#51: 2009-08-27 23:13:13 ЛС | профиль | цитата
nesco писал(а):
Очень просто: Подаем 0 на точку doReadOnly, включается режим редактирования, подаем на точку doAdd нужную строку, затем подаем 1 на точку doReadOnly, включая запрет редактирования. Иначе -- никак.


Спасибо за совет, сделал, работает.

nesco писал(а):
Как-то вот так, должно работать


Спасибо за код, но я почти также реализовал.

И еще:

220v писал(а):
Еще один нюанс: автопрокрутка вертикального скролла работает или как Или надо переводить каретку в конец новой строки чтобы скролл автоматом вставал вниз Странно както, надеюсь на разъеснение



карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#52: 2009-08-27 23:15:42 ЛС | профиль | цитата
220v писал(а):
Вопрос о о наличии "бага" остается открытым...

Это не баг, в режиме чтения нельзя ничего изменять, а doAdd -- изменение. Это не Memo, Кладов посчитал, что в режиме редактирования нельзя ничего никуда записывать, и в этом месте я алгоритм не менял, и полностью согласен с Кладовым.
карма: 22

0
Ответов: 54
Рейтинг: 2
#53: 2009-08-27 23:20:10 ЛС | профиль | цитата
nesco писал(а):
Это не баг, в режиме чтения нельзя ничего изменять, а doAdd -- изменение. Это не Memo, Кладов посчитал, что в режиме редактирования нельзя ничего никуда записывать, и в этом месте я алгоритм не менял, и полностью согласен с Кладовым.


Ясно. Я так и подумал, поэтому написал слово баг в ковычках

Вопрос 2:
220v писал(а):
Еще один нюанс: автопрокрутка вертикального скролла работает или как? Или надо переводить каретку в конец новой строки чтобы скролл автоматом вставал вниз Странно както, надеюсь на разъеснение


Вопрос 3:
Как сделать перевод строки в большом тексте? Символы 10/13 и
что-то тихо курят в сторонке... Либо подавать надо текст сначала через StrList к примеру?


карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#54: 2009-08-27 23:27:00 ЛС | профиль | цитата
220v писал(а):
И еще:

doEnsureVisible в данном компоненте не предусмотрен, но реализуется он довольно просто


Add(MainForm,2953706,126,147)
{
}
Add(HilightMemo,10330655,308,147)
{
Left=15
Top=10
Width=355
Height=160
Font=[Courier New,8,0,0,1]
Strings=#4:dgxd|6:dsgtdx|7:dxgtxdt|8:dxtgxdtr|10:dxgtxdtgxd|10:xdgtxdtrxd|9:xdgtxdtxd|10:xdgxdgtxdr|10:xdgtxdgtxd|10:xdgtxdgtxd|12:xdgtxdtxdrtg|12:xdgtrxdtrxdt|12:xdtrxdtxdtrx|12:xdtxdtxdtrxd|12:xdtrxdtxdtxd|
HilightFont=[Courier New,8,0,0,1]
Point(doSetCaret)
link(onChange,10999650:doData,[(353,153)(353,122)(247,122)(247,195)])
}
Add(Button,4751805,196,147)
{
Left=165
Top=185
Caption="Add"
Data=String(Привет!)
link(onClick,10330655:doAdd,[])
}
Add(PointXY,11447933,259,147)
{
link(Y,10330655:Count,[(272,135)(296,135)(296,211)(321,211)])
}
Add(DoData,10999650,259,189)
{
link(onEventData,10330655:doSetCaret,[])
link(Data,11447933:Point,[])
}

------------ Дoбавленo в 23.28:
220v писал(а):
Как сделать перевод строки в большом тексте?

Не понял, можно пример, что конкретно надо
карма: 22

0
Ответов: 54
Рейтинг: 2
#55: 2009-08-27 23:35:50 ЛС | профиль | цитата
220v писал(а):
doEnsureVisible в данном компоненте не предусмотрен, но реализуется он довольно просто


Ага, спасибо, были мысли тоже в этом направлении пока ждал ответа

nesco писал(а):
Не понял, можно пример, что конкретно надо


Вобщем есть текст на несколько строк, тоесть не в 1 строку, а в столбик, вот его когда подаешь на doAdd, то он вставляется не столбиком, а в одну строку... Если этот текст подавать через doText, то он вставляется как надо. Если не понятно - могу кинуть схемку для демонстрации.
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#56: 2009-08-28 00:33:35 ЛС | профиль | цитата
220v писал(а):
Ага, спасибо, были мысли тоже в этом направлении пока ждал ответа

Добавлено на SVN, чтобы не мучались

220v писал(а):
Если не понятно - могу кинуть схемку для демонстрации

Вот это я и прошу
карма: 22

1
Голосовали:220v
Ответов: 54
Рейтинг: 2
#57: 2009-08-28 15:21:26 ЛС | профиль | цитата
nesco писал(а):
Вот это я и прошу




Ну вот собсно:
code_14730.txt
карма: 0

0
файлы: 1code_14730.txt [595B] [349]
Ответов: 1328
Рейтинг: 69
#58: 2009-08-28 19:46:33 ЛС | профиль | цитата
220v, так пойдет?
code_14735.txt
карма: 2

0
файлы: 1code_14735.txt [653B] [441]
Разработчик
Ответов: 26164
Рейтинг: 2127
#59: 2009-08-28 19:51:14 ЛС | профиль | цитата
Konst, он хочет, что бы обычный текст автоматом разбивался на строки внутри компонента при добавлении одной строкой по doAdd. А нафига тогда точка doText, ни че не понимаю
карма: 22

0
Ответов: 54
Рейтинг: 2
#60: 2009-08-28 22:00:54 ЛС | профиль | цитата
Konst писал(а):
220v, так пойдет?
code_14735.txt


Да, пойдет, спасибо, но я сделал по другому. Читай ниже.

nesco писал(а):
что бы обычный текст автоматом разбивался на строки внутри компонента при добавлении одной строкой по doAdd.


Да.

nesco писал(а):
А нафига тогда точка doText, ни че не понимаю


Я уже отвечал:

220v писал(а):
doText не предлагать, в рамках поставленной задачи сия точка не уместна

220v писал(а):
Пока решил сию проблему так:
Строки сначала вставляются в StrList, потом уже автоматически при изменении строк в StrList, весь список подается на doText компонента HiLightMemo, в принципе устраривает такой расклад, но хотелось бы без лишних компонентов ....


Если уж нельзя напрямую внутри компонента, то ладно... Просто мне было интересно спросить у автора сего компонента про эту особенность
карма: 0

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