Что нового

через какое то время не работает GUICtrlSetImage в коде

HolyWay

Новичок
Сообщения
24
Репутация
3
Всем привет.
Написал часть скрипта (~2000+ строк) графической оболочки клиента для будущего проекта онлайн игры, но не всё так просто оказалось.
После запуска в "демо" режиме сначала всё нормально работает, но по прошествии определённого промежутка времени, или возможно определённого кол-ва вызовов функций в скрипте, перестают работать все
Код:
GUICtrlSetImage
.
В чём может быть причина?
Подозреваю что заполняется где то память, но я совсем не умею с ней работать.
В справке ничего нет об этом, во всяком случае описание мне ничего не дало.

кусочек кода:
Код:
Func But7()
GUICtrlSetImage($Button020, "qw\tem020.bmp") ; меняет фон на 
GUICtrlSetImage($Button100, "qw\tem100.bmp") ; меняет фон на 
GUICtrlSetImage($Button200, "qw\tem200.bmp") ; меняет фон на 
GUICtrlSetImage($Button300, "qw\tem300.bmp") ; меняет фон на 
GUICtrlSetImage($Button500, "qw\tem500.bmp") ; меняет фон на 
GUICtrlSetImage($Button010, "qw\tem010.bmp") ; меняет фон на 
GUICtrlSetImage($Button8, "qw\tem8.bmp") ; меняет фон на 
GUICtrlSetImage($Button9, "qw\tem9.bmp") ; меняет фон на 
GUICtrlSetImage($Button1, "qw\tem1.bmp") ; меняет фон на 
GUICtrlSetImage($Button3, "qw\tem3.bmp") ; меняет фон на 
GUICtrlSetImage($Button6, "qw\tem6.bmp") ; меняет фон на
GUICtrlSetImage($monic1st1, "qw\ka7.bmp")
GUICtrlSetImage($monic1st2, "qw\ka7.bmp")
GUICtrlSetImage($monic1st3, "qw\ka7.bmp")
GUICtrlSetImage($monic1st4, "qw\ka7.bmp")
GUICtrlSetImage($monic1st5, "qw\ka7.bmp")
GUICtrlSetImage($monic1st6, "qw\ka7.bmp")
GUICtrlSetImage($Button7, "qw\b7.bmp") ; меняет фон на 
EndFunc


таких функций очень много, так же много используется GUIPlus,
вызов таких функций делается достаточно часто:
Код:
AdlibRegister('pPerx', 60000)
AdlibRegister('Indik', 600)
AdlibRegister('Line', 600)
AdlibRegister('ran', Random(587, 600))
;AdlibRegister("TitleChanger",500)
AdlibRegister('vizovfon',550)
AdlibRegister('time', 300)
AdlibRegister('bbs',120) ;  "бегущая строка"


но главное что без "бегущей строки" всё нормально работает, а при включении
функции
Код:
AdlibRegister('bbs',120) ;  "бегущая строка"

функция "бегущая строка" написана на основе примера http://autoit-script.ru/index.php/topic,12175.0.html
только с вызовом фоновой картинки при каждом вызове функции AdlibRegister('bbs',120)

через определённое время происходит сбой работы скрипта и перестают выполняться все функции
Код:
GUICtrlSetImage


если действительно всё дело в памяти, покажите пожалуйста пример скрипта, как, куда и зачем
требуется выделить объём памяти. Или возможно как то освобождать уже "забитую" память.





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

на 1 скрине нормальная работа кода,
на 2м уже с не рабочими функциями через какое то время





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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
HolyWay [?]
В чём может быть причина?
Нужно видеть воспроизводящий проблему скрипт.

возможно как то освобождать уже "забитую" память
Её лучше изначально не “забивать”.

В данном случае думаю AdlibRegister можно вызывать поменьше.
 
Автор
H

HolyWay

Новичок
Сообщения
24
Репутация
3
в архиве скрипт, txt для "бег. строки" и картинки для скрипта,
посмотрите пожалуйста, в чём причина отказа функций, примерно на 9ой минуте работы кода начинается проблема
:blink:
 
Автор
H

HolyWay

Новичок
Сообщения
24
Репутация
3
Странно, всё работает, но на всякий случай создал архив снова, залил на форум, скачал, работает.
Ночью погонял скрипт подольше без вызова "бег. строки", в результате то же самое, т.е. после какого то времени отказываются работать указанные выше функции,
но время до отказа на много больше.

P.S. Не думаю что Autoit такой слабенький, это точно моя неграмотность в написании кода.
:-\
 
Автор
H

HolyWay

Новичок
Сообщения
24
Репутация
3
исправил архив, добавил BigNum


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


Смотрю уже в сторону С# .
А так хотелось что то сделать на Autoit :(
 
Автор
H

HolyWay

Новичок
Сообщения
24
Репутация
3
На C# отлично получается :smile:
Похоже всё таки Autoit только для ботов хорош :IL_AutoIt_1:
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
HolyWay
Нет, на нем просто нужны хорошие знания. А не писать от балды какой то псевдо-код
 
Верх