Автор Тема: [Время, дата] Секундомер с возможность прибавлять время  (Прочитано 359 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн zelich [?]

  • Новичок
  • *
  • Сообщений: 98
  • Репутация: 0
    • Награды
Версия AutoIt: 3.

Описание:
Секуномер с возможность прибавлять время- к приеру +1 минута:


Или "старт" не с 0...
Примечания:
Помогите пожалуйста, обыскался

Русское сообщество AutoIt


Оффлайн ЭйчЭйч [?]

  • Сообщений: 109
  • Репутация: -1
    • Награды
  • Версия AutoIt: 3.3.14.0
По слову "таймер" искал?

Оффлайн zelich [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 0
    • Награды
ЭйчЭйч Вы о чём?
Не нашел ниодного секундомера с возможностью "добавлять" время.

Alofa

  • Гость
Не нашел ниодного секундомера с возможностью "добавлять" время.
Секундомер считает фактический интервал времени. Если вы в него чего-то хотите добавить, то это уже не секундомер, а больше похоже на таймер.
Подробней объясните чего хотите.

Русское сообщество AutoIt

Re: [Время, дата] Секундомер с возможность прибавлять время
« Ответ #3 Отправлен: Март 08, 2019, 09:38:26 »

Оффлайн zelich [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 0
    • Награды
Alofa, Секундомер. К примеру нужно засеч 50 минут. Но, не с  0 минут, а например, с 4 (понятно, что можно засеч 46 минут- но хотелось бы "круглую" цифру).

Или другой пример:
Запустил секундомер (хочу засеч 40 миунт), прошло 5 минут, понимаешь, что 40 будет "много" и прибаляешь +5 минут т.е. становится 10:00

Как-то так я это себе вижу
« Последнее редактирование: Март 08, 2019, 10:33:15 от zelich »

Оффлайн ЭйчЭйч [?]

  • Сообщений: 109
  • Репутация: -1
    • Награды
  • Версия AutoIt: 3.3.14.0
Alofa, Секундомер. К примеру нужно засеч 50 минут. Но, не с  0 минут, а например, с 4 (понятно, что можно засеч 46 минут- но хотелось бы "круглую" цифру).

Или другой пример:
Запустил секундомер (хочу засеч 40 миунт), прошло 5 минут, понимаешь, что 40 будет "много" и прибаляешь +5 минут т.е. становится 10:00

Как-то так я это себе вижу
:stars: Если твой родной язык не русский, а английский или украинский, лучше напиши на нём. Как минимум, я пойму.

Из того, что нужно, я понял:
1. Он должен сигнализировать о прохождении установленного пользователем времени
2. Про засечь с 4 минуты и иметь "круглую" цифру ничего не понятно.
3. Вообще непонятно, что куда, зачем и для чего.
При этом тексты выглядит так, что вносит противоречия.
OffTopicUI/UX developer'ом тебе не быть. :whistle:

В общем, используй это. Там нужно 10 строк дописать.
« Последнее редактирование: Март 08, 2019, 15:00:00 от ЭйчЭйч »

Оффлайн zelich [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 0
    • Награды

:stars: Если твой родной язык не русский, а английский или украинский, лучше напиши на нём. Как минимум, я пойму.

Из того, что нужно, я понял:
1. Он должен сигнализировать о прохождении установленного пользователем времени
2. Про засечь с 4 минуты и иметь "круглую" цифру ничего не понятно.
3. Вообще непонятно, что куда, зачем и для чего.
При этом тексты выглядит так, что вносит противоречия.

Родной язык- русский и вы первый человек кто в этом засомневался...
Попробую ещё раз объяснить:
Нужен самый обычный секундомар (Старт/Стоп/Сброс) только с возможностью "добавлять" 1 минуту (как если б его запустили на минуту ранее)
Так понятнее?

Оффлайн ЭйчЭйч [?]

  • Сообщений: 109
  • Репутация: -1
    • Награды
  • Версия AutoIt: 3.3.14.0
Ну так я ссылку дал. За день при 0 знании AutoIt превращается в секундомер.

Русское сообщество AutoIt

Re: [Время, дата] Секундомер с возможность прибавлять время
« Ответ #7 Отправлен: Март 08, 2019, 18:57:58 »

Оффлайн zelich [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 0
    • Награды
Ну так я ссылку дал. За день при 0 знании AutoIt превращается в секундомер.
У самого не получается, потому и прошу помощи

Помечен как лучший ответ пользователем zelich Отправлен Март 09, 2019, 15:11:46

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 417
  • Репутация: 98
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
~
Код: AutoIt [Выделить]
;~ AutoIt Version: 3.3.14.5
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GDIPlus.au3>
Global Const $BACK_COLOR_RGB = 0x1E1F21
;~ Global Const $BACK_COLOR_ARGB = BitOR($BACK_COLOR_RGB, 0xFF000000)
Global Const $FORE_COLOR_RGB = 0xFFFFFF
Global Const $FORE_COLOR_ARGB = BitOR($FORE_COLOR_RGB, 0xFF000000)
Global Const $MAX_HOUR = 99
Global Const $TICK_SEC = 1000
Global Const $TICK_MIN = $TICK_SEC * 60
Global Const $TICK_HOUR = $TICK_MIN * 60

Global Enum $SW_ID, $SW_IDHOUR, $SW_IDMSEC, $SW_TIMER, $SW_HOUR, $SW_MIN, $SW_SEC, $SW_MSEC, $SW_TICKS, $SW_MAX
Global $g_idStart, $g_idPause, $g_aSW[$SW_MAX]

Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1)
GUICreate("STOPWATCH", 500, 500, -1, -1, -1, BitOR($WS_EX_WINDOWEDGE, $WS_EX_COMPOSITED))
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUISetBkColor($BACK_COLOR_RGB)
GUISetFont(16, Default, Default, "Courier New")

$g_aSW[$SW_ID] = GUICtrlCreateLabel("0:00", 60, 200, 380, 120, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)
GUICtrlSetFont(-1, 100)

$g_aSW[$SW_IDHOUR] = GUICtrlCreateLabel("", 120, 320, 40, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)

$g_aSW[$SW_IDMSEC] = GUICtrlCreateLabel("000", 360, 320, 40, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)

$g_idStart = GUICtrlCreateButton("START", 145, 350, 100, 50)
GUICtrlSetCursor(-1, 0)
GUICtrlSetBkColor(-1, $BACK_COLOR_RGB)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)
GUICtrlSetOnEvent(-1, "_Start")

$g_idPause = GUICtrlCreateButton("PAUSE", 255, 350, 100, 50)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetCursor(-1, 0)
GUICtrlSetBkColor(-1, $BACK_COLOR_RGB)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)
GUICtrlSetOnEvent(-1, "_Pause")

GUICtrlCreateButton("RESET", 200, 410, 100, 50)
GUICtrlSetCursor(-1, 0)
GUICtrlSetBkColor(-1, $BACK_COLOR_RGB)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)
GUICtrlSetOnEvent(-1, "_Reset")

GUICtrlCreateButton("+1M", 10, 440, 70, 50)
GUICtrlSetCursor(-1, 0)
GUICtrlSetBkColor(-1, $BACK_COLOR_RGB)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)
GUICtrlSetOnEvent(-1, "_Add")

GUICtrlCreateButton("+10M", 420, 440, 70, 50)
GUICtrlSetCursor(-1, 0)
GUICtrlSetBkColor(-1, $BACK_COLOR_RGB)
GUICtrlSetColor(-1, $FORE_COLOR_RGB)
GUICtrlSetOnEvent(-1, "_Add10")

GUICtrlCreatePic("", 10, 10, 480, 480)
GUICtrlSetState(-1, $GUI_DISABLE)
_GUICtrlPic_DrawEllipse(-1, 480, 480, 0, $FORE_COLOR_ARGB, 4)
GUISetState()

While Sleep(10)
WEnd

Func _Start()
    GUICtrlSetState($g_idStart, $GUI_DISABLE)
    GUICtrlSetState($g_idPause, $GUI_ENABLE)
    $g_aSW[$SW_TIMER] = TimerInit()
    AdlibRegister("_Stopwatch", 10)
EndFunc   ;==>_Start

Func _Pause()
    AdlibUnRegister("_Stopwatch")
    $g_aSW[$SW_TIMER] = 0
    $g_aSW[$SW_TICKS] = $g_aSW[$SW_HOUR] * $TICK_HOUR + $g_aSW[$SW_MIN] * $TICK_MIN + $g_aSW[$SW_SEC] * $TICK_SEC + $g_aSW[$SW_MSEC]
    GUICtrlSetState($g_idStart, $GUI_ENABLE)
    GUICtrlSetState($g_idPause, $GUI_DISABLE)
EndFunc   ;==>_Pause

Func _Reset()
    _Pause()
    $g_aSW[$SW_TICKS] = 0
    _Stopwatch()
EndFunc   ;==>_Reset

Func _Add()
    $g_aSW[$SW_TICKS] += $TICK_MIN
    _Stopwatch()
EndFunc   ;==>_Add

Func _Add10()
    $g_aSW[$SW_TICKS] += $TICK_MIN * 10
    _Stopwatch()
EndFunc   ;==>_Add10

Func _Stopwatch()
    Local $iTicks, $iHour, $iMin, $iSec
    $iTicks = ($g_aSW[$SW_TIMER] ? Int(TimerDiff($g_aSW[$SW_TIMER])) : 0) + $g_aSW[$SW_TICKS]
    $iHour = Int($iTicks / $TICK_HOUR)
    $iTicks = Mod($iTicks, $TICK_HOUR)
    $iMin = Int($iTicks / $TICK_MIN)
    $iTicks = Mod($iTicks, $TICK_MIN)
    $iSec = Int($iTicks / $TICK_SEC)
    $g_aSW[$SW_MSEC] = Mod($iTicks, $TICK_SEC)

    If $g_aSW[$SW_SEC] <> $iSec Or $g_aSW[$SW_MIN] <> $iMin Then
        $g_aSW[$SW_MIN] = $iMin
        $g_aSW[$SW_SEC] = $iSec
        GUICtrlSetData($g_aSW[$SW_ID], StringFormat("%i:%02i", $g_aSW[$SW_MIN], $g_aSW[$SW_SEC]))
    EndIf
    If $g_aSW[$SW_HOUR] <> $iHour Then
        $g_aSW[$SW_HOUR] = $iHour
        If $g_aSW[$SW_HOUR] > $MAX_HOUR Then Return _Reset()
        GUICtrlSetData($g_aSW[$SW_IDHOUR], $g_aSW[$SW_HOUR] ? StringFormat("%iH", $g_aSW[$SW_HOUR]) : "")
    EndIf
    GUICtrlSetData($g_aSW[$SW_IDMSEC], StringFormat("%03i", $g_aSW[$SW_MSEC]))
EndFunc   ;==>_Stopwatch

Func _Exit()
    Exit
EndFunc   ;==>_Exit

Func _GUICtrlPic_DrawEllipse($idPic, $iWidth, $iHeight, $iBackColor, $iForeColor, $iPenWidth)
    _GDIPlus_Startup()
    Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight)
    Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetPixelOffsetMode($hGraphics, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, $GDIP_SMOOTHINGMODE_HIGHQUALITY)
    _GDIPlus_GraphicsClear($hGraphics, $iBackColor)
    Local $hPen = _GDIPlus_PenCreate($iForeColor, $iPenWidth)
    _GDIPlus_GraphicsDrawEllipse($hGraphics, $iPenWidth, $iPenWidth, $iWidth - $iPenWidth * 2, $iHeight - $iPenWidth * 2, $hPen)
    Local $hXOR = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
    Local $hPrevBitmap = GUICtrlSendMsg($idPic, $STM_SETIMAGE, 0, $hXOR)
    If $hPrevBitmap Then _WinAPI_DeleteObject($hPrevBitmap)
    _WinAPI_DeleteObject($hXOR)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
EndFunc   ;==>_GUICtrlPic_DrawEllipse
 

« Последнее редактирование: Март 09, 2019, 21:14:18 от Tempo »

Оффлайн zelich [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 0
    • Награды
Tempo, Огромное сппасибо!!!

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7962
  • Репутация: 2300
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
zelich  [?]
Цитировать
Огромное сппасибо!!!

На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
Тема не решена

Также есть кнопка для благодарности внизу сообщения


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн zelich [?]

  • Новичок
  • *
  • Сообщений: 98

  • Автор темы
  • Репутация: 0
    • Награды
CreatoR Исправился

Русское сообщество AutoIt

Re: [Время, дата] Секундомер с возможность прибавлять время
« Ответ #12 Отправлен: Март 09, 2019, 22:53:07 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
10590 Просмотров
Последний ответ Январь 20, 2010, 03:54:52
от Guezt Gutsy
9 Ответов
6226 Просмотров
Последний ответ Октябрь 24, 2010, 10:23:28
от SECTOR
21 Ответов
10564 Просмотров
Последний ответ Май 19, 2018, 09:15:21
от taxi-vovrema.info
3 Ответов
5653 Просмотров
Последний ответ Сентябрь 26, 2012, 17:41:07
от madmasles
4 Ответов
2895 Просмотров
Последний ответ Март 10, 2013, 01:33:20
от erlik
4 Ответов
1789 Просмотров
Последний ответ Май 28, 2013, 10:25:18
от C2H5OH
2 Ответов
2227 Просмотров
Последний ответ Октябрь 01, 2014, 07:19:33
от Tuner
2 Ответов
1539 Просмотров
Последний ответ Февраль 06, 2015, 14:27:18
от kristow13
1 Ответов
1658 Просмотров
Последний ответ Март 03, 2015, 15:15:51
от InnI
6 Ответов
2496 Просмотров
Последний ответ Ноябрь 15, 2015, 17:46:47
от dexter987