Что нового

While мерцание текста в EDdit решение

Tiberium6

Новичок
Сообщения
51
Репутация
0
Код:
While 1
if FileExists ("C:\1.txt") then
$line = FileReadLine("C:\1.txt",1)
GUICtrlSetData($Edit1,$line)
GUISetState(@SW_SHOW)
Else
EndIf
$MSG = GUICtrlRead ($Checkbox1)

	$nMsg = GUIGetMsg()
	Switch $nMsg
;~ 		Case $GUI_EVENT_CLOSE
;~ 			Exit

		case $Checkbox1
			if $MSG = 1 then
				GUICtrlSetState($Button1, $GUI_ENABLE)
			else
				GUICtrlSetState($Button1, $GUI_DISABLE)
			EndIf
		case $Button1
    GUICtrlSetData($Edit1,"")


FileDelete("C:\1.txt")


	GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
	GUISetState(@SW_HIDE)
	EndSwitch
WEnd


при появлении файла 1.txt происходит считывание строки 1 в нем, и этот текст отображается в edit1, из за цикла, этот текс мерцает, как убрать это мерцание?
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Tiberium6
А так может быть тоже сойдет?
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $sFile="d:\1.txt"
$GUI = GUICreate("", 586, 145, 192, 124)
$Edit = GUICtrlCreateEdit("", 0, 0, 217, 137)
$Button = GUICtrlCreateButton("Кнопка", 240, 0, 187, 25)
GUICtrlSetState(-1,$gui_disable)
$Checkbox = GUICtrlCreateCheckbox("Checkbox", 240, 56, 185, 17)
AdlibRegister("__ExisFile",500)
GUISetState(@SW_SHOWMINIMIZED,$GUI)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $Checkbox
			If BitAND(GUICtrlRead($Checkbox),$gui_checked)=$gui_checked Then
				GUICtrlSetState($Button,$gui_enable)
			ElseIf BitAND(GUICtrlRead($Checkbox),$gui_unchecked)=$gui_unchecked Then
				GUICtrlSetState($Button,$gui_disable)
			EndIf
		Case $Button
			GUICtrlSetData($Edit,'')
			FileDelete($sFile)
			GUICtrlSetState($Checkbox,$gui_unchecked)
			GUICtrlSetState($Button,$gui_disable)
			GUISetState(@SW_MINIMIZE,$GUI)
			AdlibRegister("__ExisFile",500)
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
Func __ExisFile()
	If FileExists($sFile) Then
		GUICtrlSetData($Edit,FileReadLine($sFile,1))
		GUISetState(@SW_RESTORE,$GUI)
		AdlibUnRegister("__ExisFile")
	EndIf
EndFunc
 
Верх