Что нового

[Элементы GUI] Удалить Gui эелементы

Foli

Знающий
Сообщения
39
Репутация
5
как удалить все Label созданные таким образам, перед тем как заново войти в цикл ? :-\
Код:
While $z4 <= 170
GUICtrlCreateLabel("градусов =  "&$z12,15,$z3,200,20)
$z4 = $z4 + 10
$z3 = $z3 + 20
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
А так не сойдет ?:
Код:
Global $z3 = 0, $z4 = 0, $z12 = 0

$GUI = GUICreate('')
$Button1 = GUICtrlCreateButton('Delete', 300, 200, 80)
GUISetState()

While $z4 <= 170
GUICtrlCreateLabel("градусов =  "&$z12,15,$z3,200,20)
$z4 = $z4 + 10
$z3 = $z3 + 20
WEnd

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		case $Button1
			For $i = 0 To 1000
				ControlHide($GUI, '', 'Static' & $i)
				If @error Then ContinueLoop
			Next
	EndSwitch
WEnd
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
GUICtrlDelete
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Foli

Код:
GUICreate('My Program', 250, 260)
$z3 = 40
$z4 = 222
$n = ''
While $z4 <= 300
	$n &= '|' & GUICtrlCreateLabel("градусов =  ", 15, $z3, 200, 20)
	GUICtrlSetBkColor(-1, 0xffd7d7)
	$z4 += 10
	$z3 += 20
WEnd
$Button = GUICtrlCreateButton('Удалить', 10, 10, 70, 25)

GUISetState()
While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $Button
			$a = StringSplit($n, '|')
			For $i = 2 To $a[0]
				GUICtrlDelete($a[$i])
			Next
		Case -3
			Exit
	EndSwitch
WEnd

CoordMode

Код:
GUICreate('My Program', 250, 270)
$z1 = 0
$n = ''
$Coord =Opt('GUICoordMode', 0) ; режим относительно текущих координат
GUISetCoord(20, 20) ; установить начальные координаты
While $z1 <= 10
	$n &= '|' & GUICtrlCreateLabel('текст '&$z1, -1, 20, 200, 20) ; создаёт лейблы, возвращая идентификаторы в строку с разделителем
	GUICtrlSetBkColor(-1, 0xffffd7)
	$z1+=1 ; счётчик для выпрыгивания из циклв
WEnd
Opt('GUICoordMode', $Coord) ; восстановить предыдущий способ возвращённый предыдущим вызовов - абсолютьные координаты
$Button = GUICtrlCreateButton('Удалить', 10, 10, 70, 25)

GUISetState()
While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $Button
			$a = StringSplit($n, '|') ; получаем массив идентификаторов
			For $i = 2 To $a[0] ; удаляем в цикле
				GUICtrlDelete($a[$i])
			Next
		Case -3
			Exit
	EndSwitch
WEnd
 
Автор
F

Foli

Знающий
Сообщения
39
Репутация
5
наверно не правильно спросил, вот пример
Код:
Global $z3 = 100, $z4 = 0, $z12 = 0

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("noname1", 210, 500, 240, 124)
$Button1 = GUICtrlCreateButton("Пуск", 38, 24, 129, 33, $WS_GROUP)

$input	= GUICtrlCreateInput("0",55,60,100,20)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###




Func Fli()
$z1=	GUICtrlRead ($input)
While $z4 <= 170
	$z1 = $z1*2
	 GUICtrlCreateLabel($z4&'градусов =  '&$z1,15,$z3,120,20)
$z4 = $z4 + 10
$z3 = $z3 + 20
WEnd
EndFunc
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
   Case $GUI_EVENT_CLOSE
   
   Exit
    case $Button1
		Fli()
  
	   
   EndSwitch
WEnd

как сделать что бы при повторном обращении к
Код:
case $Button1
		Fli()
в Label обновилась информация согласна циклу
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Вот так:

Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Global $aLabels[100]

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("noname1", 210, 500, 240, 124)
$Button1 = GUICtrlCreateButton("Пуск", 38, 24, 129, 33, $WS_GROUP)

$input = GUICtrlCreateInput("0", 55, 60, 100, 20)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			Fli()
	EndSwitch
WEnd

Func Fli()
	For $iC = 1 To UBound($aLabels)-1
		If $aLabels[$iC] Then GUICtrlDelete($aLabels[$iC])
	Next
	
	Local $z3 = 100, $z4 = 0, $z12 = 0
	
	$z1 = GUICtrlRead($input)
	
	While $z4 <= 170
		$z1 *= 2
		
		$aLabels[0] += 1
		
		If $aLabels[0] >= UBound($aLabels) Then
			ReDim $aLabels[$aLabels[0] * 2]
		EndIf
		
		$aLabels[$aLabels[0]] = GUICtrlCreateLabel($z4 & 'градусов =  ' & $z1, 15, $z3, 140, 20)
		
		$z4 += 10
		$z3 += 20
	WEnd
EndFunc

?
:scratch:
 
Верх