Что нового

Где правильно считать данные по дате?

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Вот такая программа (вернее ее кусок):
Код:
Func _Main()
	Local $date, $msg, $date2, $YesID
    GUICreate("Дата", 200, 200, 800, 200)
    $date = GUICtrlCreateDate("1953/04/25", 10, 10, 185, 20)
    GUISetState()

    $date2 = GUICtrlCreateDate("1953/04/25", 10, 50, 185, 20)
    GUISetState()
;------------------------------------------------------------------

$YesID = GUICtrlCreateButton("Расчет", 50, 90, 50, 20)
	GUICtrlSetOnEvent($YesID, "OnK")

;------------------------------------------------------------------
GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")
	GUISetState()  ; display the GUI
	While 1
		Sleep(1000)
	WEnd

EndFunc   ;==>_Main

Мне с этой функции надо взять данные по датам ($date, $date2).
Пошел по пути - присвоить эти данные ячейкам массива.
В итоге не могу сообразить куда вставить строчки:
Код:
$avArray[1] = GUICtrlRead($date)
$avArray[2] = GUICtrlRead($date2)


Чтоб ячейкам массива присваивались бы выбранные в меню даты. (по нажатию кнопки "Расчет")
 
A

Alofa

Гость
OffTopic:
ВиталийВВ вы наверно сейчас сидите и недоумеваете: а чтой-то мне никто не помогает?
Просмотрите предыдущие свои темы и подумайте, а может быть все дело в несоблюдении нижеследующего:
из "Общие правила конференции" --> "Общие рекомендации и советы:" сказал(а):
  • На форуме принято помечать тему решённой после получения ответа на свой вопрос!
    Вверху или внизу темы нажмите на ссылку такого вида: Тема не решена
...
  • Также принято помечать полезные сообщения отвечающих в теме участников (кнопки в нижней его части).
...
  • Также желательно прочитать (и исполнять) краткие статьи рекомендации поведения на форумах от profiT на OperaFan.net:

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
ВиталийВВ, программирование, это 90% самостоятельной работы. Вы можете задавать свои глупые вопросы хоть до конца жизни, но все равно так ничему и не научитесь без самостоятельного изучения документации, примеров и т.д. Если вы изучали в школе/институте какой-либо ЯП и имеете хотя бы поверхностное представление о программировании, то F1 вам хватит с головой.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
ВиталийВВ
куда вставить строчки <...> по нажатию кнопки "Расчет"
Сами же себе отвечаете. Если для кнопки вы назначили функцию OnK, значит в неё и нужно добавлять код
Код:
#include <GuiConstantsEx.au3>

Opt("GUIOnEventMode", 1)

Global $avArray[3], $date, $date2, $YesID

_Main()

Func _Main()
  GUICreate("Дата", 200, 200, 800, 200)
  GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")
  GUISetState()

  $date = GUICtrlCreateDate("1953/04/25", 10, 10, 185, 20)
  $date2 = GUICtrlCreateDate("1953/04/25", 10, 50, 185, 20)
  $YesID = GUICtrlCreateButton("Расчет", 50, 90, 50, 20)
  GUICtrlSetOnEvent($YesID, "OnK")

  While 1
    Sleep(1000)
  WEnd
EndFunc

Func OnK()
  $avArray[1] = GUICtrlRead($date)
  $avArray[2] = GUICtrlRead($date2)
  ConsoleWrite($avArray[1] & @CRLF)
  ConsoleWrite($avArray[2] & @CRLF)
EndFunc

Func OnExit()
  Exit
EndFunc
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
InnI сказал(а):
ВиталийВВ
куда вставить строчки <...> по нажатию кнопки "Расчет"
Сами же себе отвечаете. Если для кнопки вы назначили функцию OnK, значит в неё и нужно добавлять код
Код:
#include <GuiConstantsEx.au3>

Opt("GUIOnEventMode", 1)

Global $avArray[3], $date, $date2, $YesID

_Main()

Func _Main()
  GUICreate("Дата", 200, 200, 800, 200)
  GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")
  GUISetState()

  $date = GUICtrlCreateDate("1953/04/25", 10, 10, 185, 20)
  $date2 = GUICtrlCreateDate("1953/04/25", 10, 50, 185, 20)
  $YesID = GUICtrlCreateButton("Расчет", 50, 90, 50, 20)
  GUICtrlSetOnEvent($YesID, "OnK")

  While 1
    Sleep(1000)
  WEnd
EndFunc

Func OnK()
  $avArray[1] = GUICtrlRead($date)
  $avArray[2] = GUICtrlRead($date2)
  ConsoleWrite($avArray[1] & @CRLF)
  ConsoleWrite($avArray[2] & @CRLF)
EndFunc

Func OnExit()
  Exit
EndFunc

Супер!!!!!!! Спасибо большое. Когда сам разбирался - похоже перемудрил. Решение, оказалось проще.


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

Только мне нужно было с датой арифметические операции делать, поэтому строку с датой переписал так:
Код:
$date = GUICtrlCreateDate("1953/04/25", 10, 10, 185, 20, $DTS_SHORTDATEFORMAT)


Ну и после контекстно поменял "." на "/"
 
Верх