fortages
Новичок
- Сообщения
- 81
- Репутация
- 3
Здравствуйте!
Помогите пожалуйста найти выход из ситуации...
Код кривой, но если заполнить вручную, то работает, проблемы начались на моменте, когда появилась необходимость автоматического создания страниц пользователем.
По сути - что-то вроде автоматической генерации.
Если вручную создать Х функций и все прописать - работает, но я не знаю, сколько может понадобиться страниц пользователю. Пользователь может ввести любое число и при этом количество созданных страниц должно равняться этому числу. Также есть модули (для простоты - просто кнопки, на которых будут свои функции), номера и значения которых увеличиваются с каждой страницей.
При этом еще и должны кнопки "Далее" и "Назад" корректно работать между страницами. :stars:
Но вот как это все автоматически генерировать (включая имена переменных) я не понимаю...
Пример, как оно должно работать для введенного числа "три":
А если пользователь введет какое-то большое число?
Можно ли все это как-то записать в условие или что-то такое сделать?
Когда писала на бумаге, то думала, что можно представить страницу как CurrentPage, а кнопки "Далее" и "Назад" как CurrentPage+1 или CurrentPage-1 и как-то так их считать... Только все равно не понимаю, как записать подобное условие, если от значения страницы меняется и имя переменной, и ее значение, например как тут:
Подобную задачу вообще решить как-то реально?
Помогите пожалуйста найти выход из ситуации...
Код кривой, но если заполнить вручную, то работает, проблемы начались на моменте, когда появилась необходимость автоматического создания страниц пользователем.
По сути - что-то вроде автоматической генерации.
Если вручную создать Х функций и все прописать - работает, но я не знаю, сколько может понадобиться страниц пользователю. Пользователь может ввести любое число и при этом количество созданных страниц должно равняться этому числу. Также есть модули (для простоты - просто кнопки, на которых будут свои функции), номера и значения которых увеличиваются с каждой страницей.
При этом еще и должны кнопки "Далее" и "Назад" корректно работать между страницами. :stars:
Но вот как это все автоматически генерировать (включая имена переменных) я не понимаю...
Пример, как оно должно работать для введенного числа "три":
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
; ------------------ основное окно -----------------
$Form = GUICreate("Вопрос", 249, 177, 510, 323)
$Input = GUICtrlCreateInput("", 48, 80, 145, 24)
$Label = GUICtrlCreateLabel("Сколько страниц создать?", 40, 24, 173, 44)
$OK = GUICtrlCreateButton("ОК", 32, 128, 75, 25)
$Cancel = GUICtrlCreateButton("Отмена", 128, 128, 75, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Cancel
Exit
Case $OK
MsgBox(0,"Сообщение:","Запрос на создание " & GUICtrlRead($Input) & " страниц принят")
_CreatePage()
EndSwitch
WEnd
;-------------------- основное окно закончилось --------------------
;===================================================================
Func _CreatePage() ;создание первой страницы
$Page1 = GUICreate("Page1", 181, 218, 246, 129)
$Previous = GUICtrlCreateButton("Назад", 8, 184, 75, 25)
$Next = GUICtrlCreateButton("Далее", 96, 184, 75, 25)
$Message = GUICtrlCreateLabel("Страница 1", 16, 16, 159, 28)
$module1 = GUICtrlCreateButton("module 1", 16, 64, 75, 25)
$module2 = GUICtrlCreateButton("module 2", 16, 96, 75, 25)
$module3 = GUICtrlCreateButton("module 3", 16, 128, 75, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Previous
MsgBox(0,"Ошибка", "Вы находитесь на первой странице")
Case $Next
GUIDelete($Page1)
_CreatePage2()
EndSwitch
WEnd
EndFunc
;===================================================================
Func _CreatePage2() ;создание второй страницы
$Page2 = GUICreate("Page2", 181, 218, 246, 129)
$Previous = GUICtrlCreateButton("Назад", 8, 184, 75, 25)
$Next = GUICtrlCreateButton("Далее", 96, 184, 75, 25)
$Message = GUICtrlCreateLabel("Страница 2", 16, 16, 159, 28)
$module4 = GUICtrlCreateButton("module 4", 16, 64, 75, 25)
$module5 = GUICtrlCreateButton("module 5", 16, 96, 75, 25)
$module6 = GUICtrlCreateButton("module 6", 16, 128, 75, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Previous
GUIDelete($Page2)
_CreatePage()
Case $Next
GUIDelete($Page2)
_CreatePage3()
EndSwitch
WEnd
EndFunc
;===================================================================
Func _CreatePage3() ;создание третьей страницы
$Page3 = GUICreate("Page3", 181, 218, 246, 129)
$Previous = GUICtrlCreateButton("Назад", 8, 184, 75, 25)
$Next = GUICtrlCreateButton("Далее", 96, 184, 75, 25)
$Message = GUICtrlCreateLabel("Страница 3", 16, 16, 159, 28)
$module7 = GUICtrlCreateButton("module 7", 16, 64, 75, 25)
$module8 = GUICtrlCreateButton("module 8", 16, 96, 75, 25)
$module9 = GUICtrlCreateButton("module 9", 16, 128, 75, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Previous
GUIDelete($Page3)
_CreatePage2()
Case $Next
;_CreatePage4()
MsgBox(0,"Сообщение", "Страница 4 и т.д.")
EndSwitch
WEnd
EndFunc
Можно ли все это как-то записать в условие или что-то такое сделать?
Когда писала на бумаге, то думала, что можно представить страницу как CurrentPage, а кнопки "Далее" и "Назад" как CurrentPage+1 или CurrentPage-1 и как-то так их считать... Только все равно не понимаю, как записать подобное условие, если от значения страницы меняется и имя переменной, и ее значение, например как тут:
Код:
$Page2 = GUICreate("Page2", 181, 218, 246, 129)
$Page3 = GUICreate("Page3", 181, 218, 246, 129)
Подобную задачу вообще решить как-то реально?