Обнаружился странный баг, при чтении \ записи файла, прекращает работать GUICtrlSetImage, меняющий картинки на элементах GUI. причем если путь прямой вроде @ScriptDir, то проблемы не возникает, а любой другой путь приводит к проблеме. Во вложении пример подобного.
Код:
#include <GDIPlus.au3>
#include <GuiConstants.au3>
$N = 0
$Form1 = GUICreate('', 277, 152, -1, -1, BitOR($WS_CLIPCHILDREN, $WS_POPUP), $WS_EX_CONTROLPARENT)
$PicBack1 = GUICtrlCreatePic('', 0, 0, 277, 152)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetImage(-1, 1 & ".bmp", -1)
$B1 = GUICtrlCreateButton('', 24, 24, 172, 47, $BS_BITMAP)
GUICtrlSetImage(-1, 2 & ".bmp", -1)
$B2 = GUICtrlCreateButton('', 24, 81, 172, 47, $BS_BITMAP)
GUICtrlSetImage(-1, 4 & ".bmp", -1)
$F = GUICtrlCreatePic('', 206, 24, 47, 104, $BS_BITMAP)
GUICtrlSetImage(-1, 6 & ".bmp", -1)
GUISetState(@SW_SHOWNOACTIVATE, $Form1)
While 1
$msg = GUIGetMsg()
Switch $msg
Case $B1
GUICtrlSetImage($B1, 3 & ".bmp", -1)
sleep(200)
GUICtrlSetImage($B1, 2 & ".bmp", -1)
sleep(200)
if not FileExists(@ScriptDir & "\ЭКСПОРТ") then DirCreate(@ScriptDir & "\ЭКСПОРТ")
$var = FileSaveDialog("Сохранение", @ScriptDir & "\ЭКСПОРТ", "текст (*.txt)", 16, "текст.txt") ;возникает проблема
;~ $var = FileSaveDialog("Сохранение", @ScriptDir, "текст (*.txt)", 16, "текст.txt") ;работает без проблем
if not $var = "" then
if FileExists($var) then FileDelete($var)
FileWrite($var, "некий текст")
FileClose($var)
endif
Case $B2
GUICtrlSetImage($B2, 5 & ".bmp", -1)
sleep(200)
GUICtrlSetImage($B2, 4 & ".bmp", -1)
sleep(200)
exit
EndSwitch
if $N = 0 then
GUICtrlSetImage($F, 7 & ".bmp", -1)
$N = 1
Else
GUICtrlSetImage($F, 6 & ".bmp", -1)
$N = 0
endif
sleep(50)
wend