Есть кусочек кода, который, в общем-то, прекрасно работает :
, но вот та часть, что помечена "ВОТ ЭТО И НЕ ВЫВОДИТСЯ НА ЭКРАН!!!" - НЕ работает. В принципе, даже понятно, почему - непонятно, как сделать, чтобы работало! Ай нид хелп, плиз!
Поясню: на экран совершенно беспроблемно выводится значение $Lelik из тела функции Alkid, вызываемой посредством 'Call' - потом, уже из тела основной программы выводится тестовое сообщение (Жимолость) - а вот $Lelik (во 2-й раз, на сей раз уже из основного тела программы) уже не выводится.
Механизм 'Call' хотелось бы использовать, поскольку упомянутый 18-элементный массив понадобится и в дальнейшем коде.
Код:
EnvUpdate ( )
Global $Buch[2]
$Buch[0] = "CallArgArray" ; Обязательный элемент! Иначе Call() не распознает массив аргументов
Global $rodopy[18] = [194345292,"Кaтaлoг",2325848494,"Кoнфиrypaция",3199693443 , "Учёт",2274399351 , "Oтчёты",3859973805 , "Aвapийныe cиrнaлы",2241759553 , "Плaниpoвщик",1413970315 , "Oбcлyживaниe",2188171049 , "Ничего не запущено - чистое окно",0 , "Ерунда какая-то; требуется отладка!"]
$Buch[1] = $rodopy ; второй аргумент - массив
WinActivate ("Важная программа, управляющая одной -[i]не в меру[/i]- интеллектуальной _Ш_елезякой")
Call("Alkid", $Buch); - Вызов функции Alkid с помощью механизма 'Call'.
;MsgBox(0, $Lelik, """" & $tatry[$Bolik+1] & """", 4); $Bolik/2+1 - правдивый номер окна, согласно списка выше
MsgBox(0, "" , "Жимолость!!!", 4);
;MsgBox(0, "" , $Lelik, 4); $Bolik/2+1
;MsgBox(0, "" , Alkid(), 4); $Bolik/2+1
MsgBox(0, "" , $Lelik, 4); ВОТ ЭТО-то И НЕ ВЫВОДИТСЯ НА ЭКРАН!!!
EnvUpdate ( )
Exit; - Всё, приехали!
Func Alkid ($tatry ); - Use, When Func
;Func Alkid()
$brom=PixelChecksum ( 119, 84, 136, 99, 2 )
$Bolik=-2
;MsgBox(0, "", $brom,15)
;Exit
;1; 194345292 ; Кaтaлoг
;2; 2325848494 ; Кoнфиrypaция
;3; 3199693443 ; Учёт
;4; 2274399351 ; Oтчёты
;5; 3859973805 ; Aвapийныe cиrнaлы
;6; 2241759553 ; Плaниpoвщик
;7; 1413970315 ; Oбcлyживaниe
;8; 2188171049 ; Нихрена-чистое окно
While $Bolik<=UBound($tatry) - 1
$Bolik=$Bolik+2
If $brom=$tatry[$Bolik] Then ExitLoop
WEnd
$Lelik=$Bolik/2+1
MsgBox(0, $Lelik, """" & $tatry[$Bolik+1] & """", 4); $Bolik/2+1 - правдивый номер окна, согласно списка выше
Return $Lelik;,$tatry[$Bolik+1]
EndFunc
, но вот та часть, что помечена "ВОТ ЭТО И НЕ ВЫВОДИТСЯ НА ЭКРАН!!!" - НЕ работает. В принципе, даже понятно, почему - непонятно, как сделать, чтобы работало! Ай нид хелп, плиз!
Поясню: на экран совершенно беспроблемно выводится значение $Lelik из тела функции Alkid, вызываемой посредством 'Call' - потом, уже из тела основной программы выводится тестовое сообщение (Жимолость) - а вот $Lelik (во 2-й раз, на сей раз уже из основного тела программы) уже не выводится.
Механизм 'Call' хотелось бы использовать, поскольку упомянутый 18-элементный массив понадобится и в дальнейшем коде.