Что нового

[Данные, строки] Как указать в пункте комбобокса значение переменной sleep не в млск , а в мин

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Собственно вопрос в теме , подскажите как попроще сделать это? скажем есть переменная
Код:
Sleep($time)
значение которой присваивается при выборе строки из списка комбобокса скажем 60000, для простоты понимания хотелось бы в комбобоксе написать 1 мин в место 60000, а то у меня выходит дополнительно куча кода сопоставления минуты - миллисекунды а как сделать проще пока мазгов не хватает , может кто сталкивался с такой потребностью наставьте пожалуйста путь истинный или ткните пальцем , а то поиск не помог :stars:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
мда.... просто нет слов.
что конкретно тебе подсказать? как перевести минуты в миллисекунды?
 

Police

Новичок
Сообщения
27
Репутация
3
Может в самом начале можно создать переменную, значение которой будет по умолчанию 60000, а уже потом, в дальнейшем, использовать умножение для увеличения этого интервала? :beer:


Добавлено:
Сообщение автоматически объединено:

Kaster, ему не охота работать с громоздкими числами ;D
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Police [?]
Kaster, ему не охота работать с громоздкими числами
grin.gif
я это понял, только я все равно не понимаю в чем проблема перевода данных полученных в комбобоксе в миллисекунды.
Код:
Sleep(Number(GUICtrlRead($Combo))*60*1000)



Добавлено:
Сообщение автоматически объединено:

и еще, как должен выглядеть список в комбо? там только минуты будут или могут быть и минуты и секунды и часы с сутками?
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Извините за нубство и за то что не ясно изложил мысль :-[, суть вопроса заключалась вот в чем ниже комбобокс выбрав в нем 1 мин переменная $time принимает значение 60000, на даный момент я знаю только 2 способа присвоить значение $time
первый это так

Код:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 189, 120, 290, 164)
$Combo1 = GUICtrlCreateCombo("<Время>", 24, 40, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1, '60000|12000|24000', '<Время>')
GUISetState(@SW_SHOW)
Global $time
Global $ComboRead
While 1
	$nMsg = GUIGetMsg()
	Select
		Case $nMsg = $GUI_EVENT_CLOSE
			Exit
		Case $nMsg = $Combo1
			$ComboRead = GUICtrlRead($Combo1)
			$time = $ComboRead
			MsgBox(4096, "Test", $time, 10)

	EndSelect
WEnd


он краток но время в нем указано в миллисекундах что немного не удобно для восприятия
и второй

Код:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 189, 120, 290, 164)
$Combo1 = GUICtrlCreateCombo("<Время>", 24, 40, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1, '1 мин|2 мин|3 мин', '<Время>')
GUISetState(@SW_SHOW)
Global $time
Global $ComboRead
While 1
	$nMsg = GUIGetMsg()
	Select
		Case $nMsg = $GUI_EVENT_CLOSE
			Exit
		Case $nMsg = $Combo1
			$ComboRead = GUICtrlRead($Combo1)
					If $ComboRead = '1 мин' Then
						$time = 60000
						MsgBox(4096, "Test", $time, 10)
					ElseIf $ComboRead = '2 мин' Then
						$time = 120000
						MsgBox(4096, "Test", $time, 10)
					ElseIf $ComboRead = '3 мин' Then
						$time = 240000
						MsgBox(4096, "Test", $time, 10)
					EndIf
	EndSelect
WEnd


но тут с восприятием все нормально, но если учесть что кратность деления в списке комбобокса 1 минута, то условий If... ElseIf ...EndIf будет уже 60 только в приделах часа, код становится громоздким, если учесть что при этом будут еще вытолнятся какие то функции в пределах If... ElseIf ...EndIf ,вот я и спросил можно ли каким нибудь способом сделать так чтоб скрипт понимал прописные значения комбобокса типа1 мин так как это требуется, без добавления громоздкого сопоставления.
Еще раз извиняюсь за нубство :-[ и благадарю за понимание


Добавлено:
Сообщение автоматически объединено:

Kaster [?]
я это понял, только я все равно не понимаю в чем проблема перевода

просто мой уровень познания языка очень мал, что я не знал что можно так сделать :-[ ...
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
general66
без обид, конечно, но перевод минут в миллисекунды это какой-то там класс начальной школы. ты ставишь в комбо числа (без добавления единиц типа "мин", "сек" и т.д.) и рассматриваешь их как минуты. после считываешь это число, а когда вставляешь в Sleep уже умножаешь на то, что надо, чтобы из прочитанного получились миллисекунды, а именно на 60000.


Добавлено:
Сообщение автоматически объединено:

Код:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 189, 120, 290, 164)
$Combo1 = GUICtrlCreateCombo("<Время (в минутах)>", 24, 40, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1, '1|2|3', '<Время (в минутах)>')
GUISetState(@SW_SHOW)
Global $time
Global $ComboRead
While 1
    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $GUI_EVENT_CLOSE
            Exit
        Case $nMsg = $Combo1
            $ComboRead = GUICtrlRead($Combo1)
            $time = 60000*Number($ComboRead)
            MsgBox(0, '', $time)
    EndSelect
WEnd
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Kaster [?]
без обид, конечно, но перевод минут в миллисекунды это какой-то там класс
да какие тут могут быть обиды :smile: спасибо Вам что откликаетесь даже на самые нубские просьбы о помощи... моя беда не в том что я не знаю как из миллисекунд минуты получить, а в том что просто не знал о функции
Код:
Number
вернее она в справке попадалась но все мельком , это после вашей подсказки я разглядел в ней
Код:
'Number("3tmp")   = ' & Number("3tmp") & @LF & _ ; возвращает 3
:laugh: из за нехватки опыта просто не знаешь что , как и с чем можно использовать.
Еще раз спасибо за помощь.
OffTopic:
поиск не всегда помогает , если описав в посте вопрос, людям приходится догадываться о смысле, то что говорить о поисковом запросе с ключевыми словами ... находится столько всего , но по большей части не в тему.
 
Верх