Что нового

[Элементы GUI] Как передать данные, необходимые для элемента(GUICtrlCreateDate)?

Foxik

Новичок
Сообщения
15
Репутация
0
Как передать данные, необходимые для элемента(GUICtrlCreateDate)?
Код:
$DTM_SETFORMAT_NEW = 0x1032
$Ex_Style = "HH:mm"
$time_1 = GUICtrlCreateDate($t1, 200, 45, 60, 20, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT,$WS_TABSTOP))
GUICtrlSendMsg($time_1, $DTM_SETFORMAT_NEW, 0, $Ex_Style)

$t1 = "10:00"
GUICtrlSetData($time_1, $t1) ;<== Не работает
 

gregaz

AutoIT Гуру
Сообщения
1 166
Репутация
299
Foxik [?]
Как передать данные, необходимые для элемента(GUICtrlCreateDate)?
Какие данные ты хочешь передать туда ???
Насколько я понимаю :
Там же находится системная дата или время в зависимости от заданного стиля.
Как ты ее можешь изменить ???

Ты можешь менять только формат в элементе изменением его стилей
Код:
#include <GUIConstantsEx.au3>
#include <DateTimeConstants.au3>
#include <WindowsConstants.au3>

GUICreate("My GUI get date", 400, 400, 800, 400)
$DTM_SETFORMAT_NEW = 0x1032
$Ex_Style = "HH:mm"
$time_1 = GUICtrlCreateDate('', 200, 45, 150, 20, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT,$WS_TABSTOP ))
$t1 = "10:00"
$hBt = GUICtrlCreateButton ("Set Date",10,330,65,20)	
GUISetState()
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
	  Case $GUI_EVENT_CLOSE 
		 Exit
	  Case $hBt
		 GUICtrlSendMsg($time_1, $DTM_SETFORMAT_NEW, 0, $Ex_Style)
   EndSwitch
WEnd




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

Если нужен элемент , позволяющий изменять значение даты (времени)
Возьми элемент " Label " или " Input" и заноси туда дату , время в требуемом формате :
Код:
#include <GUIConstantsEx.au3>
#include <DateTimeConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
GUICreate("My GUI get date", 400, 400, 800, 400)
$DTM_SETFORMAT_NEW = 0x1032
$Ex_Style = "HH:mm"

$time_1 = GUICtrlCreateDate('', 200, 45, 150, 20, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT,$WS_TABSTOP ))

$hTimeLabel=GUICtrlCreateLabel(_Now() ,200, 85, 150, 20)    

$t1 = "10:00"

$hBt1 = GUICtrlCreateButton ("Set Stile",10,330,65,20)  
$hBt2 = GUICtrlCreateButton ("Update",100,330,65,20) 
$hBt3 = GUICtrlCreateButton ("Set Data",200,330,65,20)   

GUISetState()
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE 
         Exit
      Case $hBt1
         GUICtrlSendMsg($time_1, $DTM_SETFORMAT_NEW, 0, $Ex_Style)
	  Case $hBt2
		 GUICtrlSetData($time_1,'')
	  Case $hBt3
         GUICtrlSetData($hTimeLabel,$t1)
   EndSwitch
WEnd
 
Автор
F

Foxik

Новичок
Сообщения
15
Репутация
0
Да, изначально выводиться системное или заданное время, как в данном случае. Но, при помощи управляющего элемента( $DTS_UPDOWN ), его можно изменить. Отсюда вопрос: так как же передать ему значение или вернуть первоначальное, не удаляя элемент и не создавая его заново?

Или как создать элемент "Input" имеющий такой же формат как время ("HH:mm")?
 

gregaz

AutoIT Гуру
Сообщения
1 166
Репутация
299
Foxik [?]
Или как создать элемент "Input" имеющий такой же формат как время ("HH:mm")?
Ты создаешь обычный Input

Туда заносишь время в нужном формате






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

Если я не оштибаюсь :
Код:
_DateTimeFormat ( $sDate, 4) ;  4-  "HH:mm"


Проверь в справке есть
 
Автор
F

Foxik

Новичок
Сообщения
15
Репутация
0
Все так.
Но если использовать
GUICtrlCreateInput ( "10:00", 200, 85, 150, 20)
совместно с
GuiCtrlCreateUpDown(-1)
поменять значение так же как в
GUICtrlCreateDate
у меня никак не получается :wacko:
 
Автор
F

Foxik

Новичок
Сообщения
15
Репутация
0
Решено, в коференции [email protected], спасибо SECTOR

Код:
#include <GuiDateTimePicker.au3>
#include <GUIConstants.au3>

   Local $gui, $time, $old, $a_Date[7] = [False, @YEAR, 1, 1, 10, 0, 0],$a_2[7] = [False, @YEAR, 1, 1, 11, 59, 0]

    $gui = GUICreate("title",250,250,-1,-1,0x00080000)
	$time = _GUICtrlDTP_Create($gui,10,10,60,20,$DTS_UPDOWN)
	_GUICtrlDTP_SetFormat($time,"HH:mm")
    _GUICtrlDTP_SetSystemTime($time, $a_Date)
    $old = GUICtrlCreateButton("old",100,70,70,20)
    $2 = GUICtrlCreateButton("2",100,120,70,20)
	GUISetState()

While 1
    Switch GUIGetMsg($gui)

	Case $old
		_GUICtrlDTP_SetSystemTime($time, $a_Date)
	Case $2
		_GUICtrlDTP_SetSystemTime($time, $a_2)
	Case -3
        ExitLoop
	EndSwitch
WEnd
$ret = _GUICtrlDTP_GetSystemTime($time)
MsgBox(0, "title", $ret[3]&" : "&$ret[4])
 
Верх