S
Serduko
Есть база для проведения тестов, срок сдачи тестов ограничен временем. Как лучше реализовать отображение времени оставшегося для сдачи теста?
Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
+ таймером бери время с сервака так какПочитай в хелпе про NotesTimer и пример посмотри.
Поиск что ли перестал работать?А каким образом брать время с сервера?
Это именно "убегание" времени, а не расхождение времени между клиентом и сервером?На сколько точный этот NotesTime, у меня с интервалом 1 сек в течение 30 сек опоздал на 5?
to author of post:Почитай в хелпе про NotesTimer и пример посмотри.
Sub StartExam(StartForm As NotesDocument)
Dim ws As New NotesUIWorkspace
Dim Qdoc As NotesDocument
Dim Adoc As NotesDocument
Dim NextAdoc As NotesDocument
If Len(CStr(SectionDoc.SectionTime(0))) <> 0 Then
If SectionDoc.SectionTime(0) <> 0 Then
MaxTime = SectionDoc.SectionTime(0)
startTime = Now
elapsedTime = CDat(0)
Set elapsedTimer = New NotesTimer(1, "Время сдачи раздела")
On Event Alarm From elapsedTimer Call elapsedTimerHandler
End If
End If
Set Qdoc = GetQuestionDoc(0)
If Qdoc Is Nothing Then Exit Sub
Set Adoc = GetAnswerDoc(Qdoc, "", StartForm.UserUN(0))
NextAnswer:
Adoc.OpenedInDialog = 1
If elapsedTimer.Enabled Then Adoc.TimeLeft = GetRemainingTime
If ws.DialogBox (Adoc.Form(0), True, True, True, False, False, False, "Вопрос №" + CStr(Adoc.QuestionIndex(0)),_
Adoc, False, True) Then
...
Function GetRemainingTime As Integer
If elapsedTime = CDat(0) Then
GetRemainingTime = MaxTime
Else
GetRemainingTime = MaxTime - CInt(Format(elapsedTime - startTime,"nn"))
End If
End Function
Sub elapsedTimerHandler(Source As NotesTimer)
Dim temp As Variant
temp = Evaluate("@Now([ServerTime] : [LocalTimeOnError]; @ServerName)")
elapsedTime = temp(0)
End Sub
Обучение наступательной кибербезопасности в игровой форме. Начать игру!