Что нового

Глюк элемента UpDown (добавляет в число пробелы)

Suppir

Продвинутый
Сообщения
967
Репутация
62
Можно ли сделать так, чтобы UpDown не добавлял пробелов в число?

См. код:

Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#Include <GuiEdit.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <Array.au3>

Opt("ExpandVarStrings", 1)

$Form1 = GUICreate("Отключить от Энциклопедии ситуаций", 792, 801, 269, 135)
$Edit = GUICtrlCreateEdit("", 0, 56, 793, 745, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_WANTRETURN))
GUICtrlSetData(-1, @CRLF & @CRLF & @CRLF & "Скопируйте сюда из Гаранта (или Арчи) выборку из документов," & @CRLF & "подключенных к Энциклопедии ситуаций")
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetLimit($Edit, 99999999)

$Input1 = GUICtrlCreateInput(@YEAR-2, 456, 24, 56, 24, $ES_NUMBER)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Updown1 = GUICtrlCreateUpdown($Input1)

$Label2 = GUICtrlCreateLabel("и более старые годы", 520, 24, 139, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Пуск", 8, 8, 75, 41, 0)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$Button2 = GUICtrlCreateButton("i", 770, 2, 20, 20, 0)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$Label1 = GUICtrlCreateLabel("Найти документы, в названиях которых упоминаются ", 96, 24, 356, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)

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

Func _Check()
	
	GUICtrlSetState($Edit, $GUI_DISABLE)
	Local $Line, $Regex, $i, $x, $Next, $Result[1]
	$Regex = "1991|1992|1993|1994|1995|1996|1997|1998|1999|"

	For $x = 2000 to GUICtrlRead($Input1) Step 1
		$Regex = $Regex & $x & "|"
	Next

	$Regex = StringTrimRight ($Regex, 1)
	
	For $x = 1 to 10 Step 1
		$Next = $Next & GUICtrlRead($Input1) + $x & "|"
	Next
	
	$Next = StringTrimRight ($Next, 1)

	$Line = StringSplit(GUICtrlRead($Edit), @CRLF)
	for $i = 1 to UBound($Line) - 1
		if @error = 0 And StringLen($Line[$i]) > 0 Then
			
			if StringRegExp($Line[$i], "от.+?($Regex$)\s*г") _
			And StringRegExp($Line[$i], "(за|в|на|период|до)(\s+(январ.|феврал.|март.?|апрел.|ма.|июн.|июл.|август.?|сентябр.{,2}|октябр{,2}|ноябр.{,2}|декабр.{,2}))?\s+($Regex$)(\s*-\s*($Regex$))?\s*г") _
			And	Not StringRegExp ($Line[$i], ".+бюджет.+"& @Year - 2) _
			And Not StringRegExp ($Line[$i], @Year - 2 & ".+бюджет") _ 
			And Not StringRegExp ($Line[$i], @Year) _ 
			And Not StringRegExp ($Line[$i], "($Next$)") _
			And Not StringRegExp ($Line[$i], "судеб.+практик") _ 
			Then
				_ArrayAdd($Result, $Line[$i])
			EndIf
		EndIf
	Next
	_GUICtrlEdit_SetText($Edit, "")
	
	For $x = 1 to Ubound ($Result) - 1 
		_GUICtrlEdit_AppendText($Edit, $Result[$x] & @CRLF & @CRLF)
	Next
	GUICtrlSetState($Edit, $GUI_ENABLE)
Endfunc
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Добавь $UDS_NOTHOUSANDS при создании Updown.
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Пишу вот так:

Код:
#include <UpDownConstants.au3>
$Input1 = GUICtrlCreateInput(@YEAR-2, 439, 22, 63, 24, BitOR($ES_NUMBER, $UDS_NOTHOUSANDS))



Но все равно разделяет пробелом.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
:mad:

Я же написал:

Yashied сказал(а):
...при создании Updown.

Код:
#Include <UpdownConstants.au3>
...
$Updown1 = GUICtrlCreateUpdown($Input1, $UDS_NOTHOUSANDS)
...
 
Верх