![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
belkeandrey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 21.2.2013 Репутация: нет Всего: нет |
Коллеги, проблема такая. Уже как говорится, голова вскипела. Есть форма, есть кнопки с названием разделов, есть ричэдит. При нажатии на кнопку подгружаем файл в ричэтид. Юзер его читает, потом выбирает другой раздел, при этом меняется только путь к файлу и он видит другой текст. Как определить, сколько времени читал текст юзер до перехода в другой раздел. Если бы каждый раздел был в новой форме, проблем бы не было, просто событие onclose или подобное. А тут как подойти не соображу...
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Засекаешь время при открытии раздела, затем засекаешь при открытии другого и отнимаешь. В чем проблема возникла?
Вот прямо тут и засекай. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
belkeandrey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 21.2.2013 Репутация: нет Всего: нет |
У меня считается время таймером по 1 секунде увеличивая переменную на 1. От этого и отталкиваюсь, но никак не получается. Разделов много, а как вы имеете в виду засечь?
|
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Ну, по клику на кнопках считывать/обнулять значение глобальной переменной, которая увеличивается по таймеру. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
ты не можешь определить сколько пользователь реально читал текст, можешь только определить время между некоторыми событиями в программе, а читал он или нет - как узнать?
|
|||
|
||||
belkeandrey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 21.2.2013 Репутация: нет Всего: нет |
Да это не критично ![]() Кнопок много, ричэдит один. Нужно чтобы после нажатия на любую из кнопок сначала посчиталось время показа одного текста, а потом начался новый отсчет и так циклично на все кнопки... Добавлено через 1 минуту и 36 секунд
Да это и нужно, а читал он или нет, это уже его проблемы ![]() |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 3 Всего: 7 |
Создай массив TDateTime, размерность задать по числу разделов, засекай момент загрузки раздела, засекай момент перехода к следующему, или иного события прекращения чтения, разницу суммируй с уже накопленным в массиве. Будет работать даже если юзер бегает туда-сюда. А лучше не DateTime, а Cardinal, и снимай замеры в миллисекундах с помощью GetTickCount (Сия функция первый помощник программиста, когда надо быстренько померить время), тогда не выйдет обмануть с помощью перевода часов, если это критично.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
belkeandrey |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 21.2.2013 Репутация: нет Всего: нет |
допустим глобально считаются секунды. кликнул на 1й раздел - считали переменную, обнулили кликнул на 2й раздел - запустили таймер, а как же одним кликом и считать то? При кажущейся простоте, я что-то совсем запутался.... Завтра утром надо свежим взглядом смотреть ![]() Добавлено через 5 минут и 23 секунды
Вот это уже ближе к моей ситуации ![]() ![]() |
||||||
|
|||||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
А что в итоге надо получить? Время по каждому разделу?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
belkeandrey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 21.2.2013 Репутация: нет Всего: нет |
В итоге мне надо название просмотренного текста и время его "просмотра" поместить в БД с помощью ADOQuery, причем желательно одновременно. Помещать эту инфу надопосле каждой смены раздела или ухода в другую часть проги... |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Ну, тогда достаточно одной переменной, значение которой будет заноситься в таблицу при смене раздела.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Код показывай. Как "отталкиваешься", и что никак не получается. P.S. Имхо в итоге всё сведётся к незанию работы с БД. ![]() -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
У RichEdit есть событие OnChange, которое происходит при каждом изменении текста. Не нужно пихать на все кнопки, можно запихнуть сюда. При выполнении:
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
belkeandrey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 21.2.2013 Репутация: нет Всего: нет |
Спасибо, добрый человек ![]() Добавлено через 4 минуты и 41 секунду Только как теперь сделать, чтобы при подгрузке нового текста, скролл перемещался на начало? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |