Вверх ↑
Этот топик читают: Гость
Ответов: 1535
Рейтинг: 176
#1: 2016-08-30 01:08:55 ЛС | профиль | цитата
Вот думаю собрать приложение синхронизатор аудиотекста. Это когда аудиокнига на несколько часов сопровождается текстом. В ней должен быть поиск слов и выражений, и по результатам поиска попадать именно в позицию аудиокниги. И наоборот, кликая по шкале времени аудиофайла, попадать в позицию текста. Интерфейс должен напоминать вот такую таблицу.


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

Можно конечно продолжить использовать ту же html таблицу, но я к сожалению не умею пользоваться яваскриптом.

Вот если бы наш компонент таблицы умел выводить многострочный текст, то вопросов бы и не возникло. А так приходиться просить помощь. Быть может есть у кого какие идеи.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#2: 2016-08-30 02:13:19 ЛС | профиль | цитата
ser_davkin писал(а):
Вот если бы наш компонент таблицы умел выводить многострочный текст

Нуууу, это фантастика
карма: 22

0
Ответов: 8921
Рейтинг: 823
#3: 2016-08-30 12:29:09 ЛС | профиль | цитата
nesco писал(а):
это фантастика

Разве что россыпью :D [spoiler=Россыпь]

Add(MainForm,2953706,140,35)
{
Width=398
Point(Width)
Point(onResize)
link(onCreate,1536856:doEvent1,[(179,55)(179,48)])
link(onResize,12544289:doWork2,[])
}
Add(ChildPanel,4305096,140,91)
{
link(onEvent1,14971157:doWork2,[])
link(onEvent2,3344677:doWork3,[])
}
BEGIN_SDK
Add(EditMulti,8970373,21,21)
{
EventCount=2
WorkCount=2
VOffset=7
link(doWork1,9270096:doAdd,[])
link(doWork2,9270096:doClear,[])
}
Add(Panel,9231701,35,105)
{
Left=1
Top=1
Height=300
Align=1
}
Add(Button,13573907,147,28)
{
Left=10
Top=10
Width=40
Caption="New"
link(onClick,8970373:onEvent1,[])
}
Add(ComboBox,9270096,98,28)
{
Left=5
Top=80
Width=50
Height=21
link(onClick,8970373:onEvent2,[])
}
Add(Label,1891972,49,56)
{
Left=20
Top=60
Width=20
Height=17
Caption="Del"
}
END_SDK
Add(ChildScrollBox,3344677,238,84)
{
link(Data1,2953706:Width,[(244,75)(146,75)])
link(onEvent1,4305096:doWork1,[(284,90)(284,138)(123,138)(123,97)])
link(onEvent2,4305096:doWork2,[(277,97)(277,132)(130,132)(130,104)])
}
BEGIN_SDK
Add(EditMulti,5100281,21,21)
{
EventCount=2
WorkCount=3
DataCount=1
VOffset=28
HOffset=35
link(doWork1,16056454:doOperation,[])
link(doWork2,5206352:doEvent1,[(46,62)(46,97)])
link(doWork3,4847930:doEvent1,[(39,69)(39,111)])
}
Add(ScrollBox,3953330,154,35)
{
Left=60
Width=320
Height=300
Color=12639424
Point(doWidth)
Point(doHeight)
}
Add(Math,16056454,56,49)
{
OpType=1
Op2=76
ResultType=0
link(onResult,3953330:doWidth,[])
link(Op1,5100281:Data1,[])
}
Add(ChildPanelEx,12302085,147,91)
{
Mode=1
link(ojClick,9962557:doData,[])
}
BEGIN_SDK
Add(EditMultiEx,8332969,21,21)
{
WorkCount=#5:##add|8:##select|8:##delete|
EventCount=#7:ojClick|
VarCount=#12:##eventIndex|7:##count|
Width=461
Height=284
Point(##add)
Point(##select)
Point(##eventIndex)
Point(##delete)
Point(##count)
}
Add(Panel,6579944,259,98)
{
Width=324
Align=2
Point(doHeight)
}
Add(Memo,7576458,203,35)
{
Left=105
Top=35
Align=5
Point(onResize)
Point(onMouseDown)
link(onChange,3967343:doWork1,[(249,41)])
link(onResize,3967343:doWork2,[])
link(onMouseDown,4579368:doWork3,[(291,55)])
}
Add(MathParse,16440870,210,105)
{
DataCount=1
MathStr="%1*13+13"
ResultType=0
link(onResult,6579944:doHeight,[])
link(X1,7576458:Count,[])
}
Add(MultiElement,2025314,119,56)
{
link(onEvent1,1912569:doEvent1,[])
}
BEGIN_SDK
Add(EditMulti,14856590,21,21)
{
EventCount=1
WorkCount=1
Width=426
}
Add(Timer,9845626,49,91)
{
Interval=20
AutoStop=1
link(onTimer,9704121:doFor,[])
}
Add(For,9704121,98,91)
{
End=50
link(onEvent,11602684:doRandom,[])
link(onStop,10021023:doEvent1,[(137,104)(137,153)])
}
Add(For,2380999,203,91)
{
link(onEvent,12465202:doRandom,[])
link(onStop,5923747:doData,[(242,104)(242,139)])
link(End,11602684:Random,[(216,82)(195,82)(195,131)(153,131)])
}
Add(Random,12465202,252,91)
{
Min=226
Max=255
link(onRandom,10375247:doWork2,[])
}
Add(Random,11602684,147,91)
{
Min=5
Max=10
link(onRandom,2380999:doFor,[])
}
Add(Convertor,8875378,308,91)
{
Mode=4
link(onResult,5528660:doStrCat,[])
}
Add(StrCat,5528660,357,91)
{
Point(doClear)
link(Str1,14563104:Var3,[(363,82)(403,82)(403,131)])
}
Add(DoData,5923747,252,133)
{
Data=Integer(32)
link(onEventData,10375247:doWork3,[(298,139)])
}
Add(Hub,10021023,315,147)
{
link(onEvent1,13579217:doData,[])
link(onEvent2,5528660:doClear,[(347,160)(347,104)])
}
Add(DoData,13579217,357,147)
{
link(onEventData,14856590:onEvent1,[(410,153)(410,27)])
link(Data,14563104:Var2,[])
}
Add(GetDataEx,14563104,357,126)
{
link(Data,5528660:Result,[])
}
Add(HubEx,10375247,294,91)
{
link(onEvent,8875378:doConvert,[])
}
END_SDK
Add(HubEx,3967343,245,42)
{
Angle=1
link(onEvent,2301260:doWork3,[(249,90)])
}
Add(HubEx,4579368,287,21)
{
link(onEvent,8332969:ojClick,[])
}
Add(Hub,1912569,161,56)
{
link(onEvent1,7576458:doText,[])
link(onEvent2,2301260:doWork1,[(193,69)])
}
Add(Memo,1950476,77,35)
{
Align=1
Color=-16777213
Point(onMouseDown)
link(onMouseDown,4579368:doWork2,[(121,48)(121,27)])
}
Add(HubEx,2301260,189,84)
{
Angle=1
link(onEvent,16440870:doCalc,[(193,111)])
}
END_SDK
Add(DoData,9962557,196,91)
{
link(onEventData,12302085:##select,[(235,97)(235,76)(137,76)(137,104)])
link(Data,12302085:##eventIndex,[(202,82)(188,82)(188,131)(153,131)])
}
Add(Hub,5206352,77,91)
{
link(onEvent1,12302085:##add,[])
link(onEvent2,2806219:doWork1,[(102,104)])
}
Add(Hub,4847930,56,105)
{
link(onEvent1,12302085:##delete,[])
link(onEvent2,2806219:doWork2,[])
}
Add(For,14181358,147,154)
{
IncludeEnd=1
link(onEvent,5100281:onEvent1,[(249,160)(249,55)])
link(End,12302085:##count,[])
}
Add(HubEx,2806219,98,112)
{
Angle=1
link(onEvent,664976:doEvent1,[(102,153)])
}
Add(Hub,664976,105,147)
{
link(onEvent1,5100281:onEvent2,[(242,153)(242,62)])
link(onEvent2,14181358:doFor,[])
}
END_SDK
Add(HubEx,12544289,224,56)
{
Angle=1
link(onEvent,3344677:doWork1,[(228,90)])
}
Add(Hub,1536856,189,42)
{
link(onEvent1,12544289:doWork1,[(228,48)])
link(onEvent2,14971157:doWork1,[(214,55)])
}
Add(HubEx,14971157,210,91)
{
link(onEvent,3344677:doWork2,[])
}

[/spoiler]
карма: 19

1
Голосовали:ser_davkin
Ответов: 1535
Рейтинг: 176
#4: 2016-08-30 14:16:53 ЛС | профиль | цитата
Леонид, к сожалению, этот вариант я уже рассматривал. На отрисовку фейса требуется слишком много времени, учитывая, что строк "таблицы" может быть больше тысячи.

Редактировалось 1 раз(а), последний 2016-08-30 14:17:38
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 2236
Рейтинг: 676
#5: 2016-08-30 14:50:24 ЛС | профиль | цитата
Ничего сложного, взять и нарисовать.
карма: 11

0
Ответов: 8921
Рейтинг: 823
#6: 2016-08-30 14:56:54 ЛС | профиль | цитата
ser_davkin, где же столько сказок взять, разве +18 в 1001 ночи
Тогда выпадающий список с заголовками, а все тексты в файлах, по необходимости выводимых и сохраняемых
карма: 19

0
Ответов: 1535
Рейтинг: 176
#7: 2016-08-30 15:35:49 ЛС | профиль | цитата
Леонид писал(а):
Тогда выпадающий список с заголовками, а все тексты в файлах, по необходимости выводимых и сохраняемых
Т.е. выводить не полностью текст, а блоками? Да, тут надо будет подумать, понимание то есть, а вот делать такого ещё не делал.

--- Добавлено в 2016-08-30 23:51:40

Вопрос возник, возможно ли как перехватить мягкий перенос строки в Memo или RichEdit?

Редактировалось 1 раз(а), последний 2016-08-30 23:51:40
карма: 1
Не так страшна ошибка, как опасность её не заметить.

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