Автоматизированная загрузка записей и позицирование курсора

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Stalker
Активист
Сообщения: 127
Зарегистрирован: 01 Декабрь 2005, 20:47
Откуда: Минск
Контактная информация:

Автоматизированная загрузка записей и позицирование курсора

Сообщение Stalker »

Здравствуйте , уважаемые ГУРУ!

Помогите решить следующую задачу. Имеется окно, в котором отображаются два списка List1 и List2, с одинаковой структурой записи. Данные в списках отобраны по одному и тому значению ключа.
Необходимо по нажатию, к примеру, кнопки Старт запустить процес последовательной загрузки записей, с задержкой после загрузки и перемещения курсора на каждой записи на Т - секунд. Тоесть, то что мы делаем вручную, нажимая на кнопку прокрутки записи вниз на одну позицию. После перемещения курсора и отображения записи происходит озвучка звукового файла. На время проигривания этого файла (5-7 сек), необходимо задержать курсор на активной записи, а после проигрыша переместить курсор вниз и загрузить новый файл, и так далее до конца отображаемых записей. Это применяется при озвучке к примеру словарей при обучении иностранным языкам. Имеется ключ , состоящий из двух полей - номер записи и название урока, пробовал загрузку с использованием GET() и ключа, данные загружаются , а визуального перемещения курсора по загружаемым записям не наблюдается. Чувствую есть простое решение, но пока его не смог найти.
Движение курсора необходимо менять в двух списках (поле String(200)), а загрузка информации происходит со второго листбока.Курсор должен подсвечивать русское слово в одном листе и соответствующий перевод в другом.
Первый листбок содержит русский перевод, а второй иностранный текст и файл озвучки.
Помогите, если кто встречался с подобным. С уважением Stalker.
Специализация - программы для образования, делопроизводство, складской учет
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Автоматизированная загрузка записей и позицирование курсора

Сообщение BOB »

Не понятно что значит загрузка записей ? Если есть заполненный лист , то записи уже загружены в 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
Сформулируй вопрос подробнее.
Аватара пользователя
WadimZapara
Активист
Сообщения: 181
Зарегистрирован: 11 Июнь 2008, 12:11
Откуда: Тамбов

Re: Автоматизированная загрузка записей и позицирование курсора

Сообщение WadimZapara »

что-типа...

Код: Выделить всё

! где-то - начало процесса
ВЫКЛЮЧИТЬ_КЛАВУ_И_МЫШЬ
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()
Компьютер имеет то преимущество перед мозгом, что им пользуются...
Stalker
Активист
Сообщения: 127
Зарегистрирован: 01 Декабрь 2005, 20:47
Откуда: Минск
Контактная информация:

Re: Автоматизированная загрузка записей и позицирование курсора

Сообщение Stalker »

Спасибо, всем кто откликнулся!
дошел сам, получилось примерною как предлагает ВОВ, за небольшим дополнением,
сделал искуственный таймер вставкой кода при срабатывании событий WindowsEvent, где после определенного промежутка времени T (которое регулируется в процессе диалога, каждому обучаемому нужен свой темп изучения словаря) запускается подпрограмма загрузки записи через GET() и озвучка, а перевод линии курсора в ?List1(2) на соответствующую запись осуществляется через POST(курсор вниз,?List1), POST(курсор вниз,?List2), после окончания списка
POST(курсор в начало,?List1),POST(курсор в начало,?List2), счетчику присвоить 1 (Get() на первую запись и так далее до нажатии кнопки Стоп.
Может все это мудрено, но все получилось, как требовалось.
Попробую использовать код, предложенный WadimZapara может будет проще.

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