Здравствуйте , уважаемые ГУРУ!
Помогите решить следующую задачу. Имеется окно, в котором отображаются два списка List1 и List2, с одинаковой структурой записи. Данные в списках отобраны по одному и тому значению ключа.
Необходимо по нажатию, к примеру, кнопки Старт запустить процес последовательной загрузки записей, с задержкой после загрузки и перемещения курсора на каждой записи на Т - секунд. Тоесть, то что мы делаем вручную, нажимая на кнопку прокрутки записи вниз на одну позицию. После перемещения курсора и отображения записи происходит озвучка звукового файла. На время проигривания этого файла (5-7 сек), необходимо задержать курсор на активной записи, а после проигрыша переместить курсор вниз и загрузить новый файл, и так далее до конца отображаемых записей. Это применяется при озвучке к примеру словарей при обучении иностранным языкам. Имеется ключ , состоящий из двух полей - номер записи и название урока, пробовал загрузку с использованием GET() и ключа, данные загружаются , а визуального перемещения курсора по загружаемым записям не наблюдается. Чувствую есть простое решение, но пока его не смог найти.
Движение курсора необходимо менять в двух списках (поле String(200)), а загрузка информации происходит со второго листбока.Курсор должен подсвечивать русское слово в одном листе и соответствующий перевод в другом.
Первый листбок содержит русский перевод, а второй иностранный текст и файл озвучки.
Помогите, если кто встречался с подобным. С уважением Stalker.
Автоматизированная загрузка записей и позицирование курсора
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Активист
- Сообщения: 127
- Зарегистрирован: 01 Декабрь 2005, 20:47
- Откуда: Минск
- Контактная информация:
Автоматизированная загрузка записей и позицирование курсора
Специализация - программы для образования, делопроизводство, складской учет
Re: Автоматизированная загрузка записей и позицирование курсора
Не понятно что значит загрузка записей ? Если есть заполненный лист , то записи уже загружены в queue .
тогда
после get(queue) делай Select(?List, Pointer(queue)) для win или SELF.list.SelectedRowIndex = Pointer(queue) для net
(не понятно что за клаша). Типа
loop i#= 1 to records(queue)
get(queue,i#)
Select(?list1,i#)
играем файл
end
Сформулируй вопрос подробнее.
тогда
после get(queue) делай Select(?List, Pointer(queue)) для win или SELF.list.SelectedRowIndex = Pointer(queue) для net
(не понятно что за клаша). Типа
loop i#= 1 to records(queue)
get(queue,i#)
Select(?list1,i#)
играем файл
end
Сформулируй вопрос подробнее.
- WadimZapara
- Активист
- Сообщения: 181
- Зарегистрирован: 11 Июнь 2008, 12:11
- Откуда: Тамбов
Re: Автоматизированная загрузка записей и позицирование курсора
что-типа...
Код: Выделить всё
! где-то - начало процесса
ВЫКЛЮЧИТЬ_КЛАВУ_И_МЫШЬ
flag=true
Select(?list1)
!...
Case Field()
Of ?List1
Case Event()
Of Event:Selected
If Flag Then
PressKey(DownKey)
End !If
Of Event:NewSelection
If Flag Then
Select (?List2)
End !If
!...
End !Case Event()
Of ?List2
Case Event()
Of Event:Selected
If Flag Then
PressKey(DownKey)
End !If
Of Event:NewSelection
if flag then
! проиграть файл из какого-то поля
If КОНЕЦ_СПИСКА Then
ВКЛЮЧИТЬ_КЛАВУ_И_МЫШЬ
flag = false
Else
Select(?List1)
End !If
end !if
!...
End !Case Event()
End !Case Field()
Компьютер имеет то преимущество перед мозгом, что им пользуются...
-
- Активист
- Сообщения: 127
- Зарегистрирован: 01 Декабрь 2005, 20:47
- Откуда: Минск
- Контактная информация:
Re: Автоматизированная загрузка записей и позицирование курсора
Спасибо, всем кто откликнулся!
дошел сам, получилось примерною как предлагает ВОВ, за небольшим дополнением,
сделал искуственный таймер вставкой кода при срабатывании событий WindowsEvent, где после определенного промежутка времени T (которое регулируется в процессе диалога, каждому обучаемому нужен свой темп изучения словаря) запускается подпрограмма загрузки записи через GET() и озвучка, а перевод линии курсора в ?List1(2) на соответствующую запись осуществляется через POST(курсор вниз,?List1), POST(курсор вниз,?List2), после окончания списка
POST(курсор в начало,?List1),POST(курсор в начало,?List2), счетчику присвоить 1 (Get() на первую запись и так далее до нажатии кнопки Стоп.
Может все это мудрено, но все получилось, как требовалось.
Попробую использовать код, предложенный WadimZapara может будет проще.
Спасибо за ответы! С уважением Stalker.
дошел сам, получилось примерною как предлагает ВОВ, за небольшим дополнением,
сделал искуственный таймер вставкой кода при срабатывании событий WindowsEvent, где после определенного промежутка времени T (которое регулируется в процессе диалога, каждому обучаемому нужен свой темп изучения словаря) запускается подпрограмма загрузки записи через GET() и озвучка, а перевод линии курсора в ?List1(2) на соответствующую запись осуществляется через POST(курсор вниз,?List1), POST(курсор вниз,?List2), после окончания списка
POST(курсор в начало,?List1),POST(курсор в начало,?List2), счетчику присвоить 1 (Get() на первую запись и так далее до нажатии кнопки Стоп.
Может все это мудрено, но все получилось, как требовалось.
Попробую использовать код, предложенный WadimZapara может будет проще.
Спасибо за ответы! С уважением Stalker.
Специализация - программы для образования, делопроизводство, складской учет