Что нового

[Данные, строки] Заполнение строк по определенным правилам!

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Есть 3 поля:
1) ввожу сам
2) ввожу сам
3) должно заполнятся автоматически "значение 1 + значение 2"
Необходимо сделать так, чтобы на 3 поле был лимит 20 символов.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

HaeMHuK
поля сам создаешь или в чужом окне?
 
Автор
H

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

Код:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 295, 234, 193, 125)
$Input1 = GUICtrlCreateInput("Input1", 48, 48, 129, 21)
$Input2 = GUICtrlCreateInput("Input2", 48, 80, 129, 21)
$Input3 = GUICtrlCreateInput("Input3", 48, 112, 129, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd
 
Автор
H

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

qsort
это работает только если я ввожу текст, а мне еще нужно автозаполнение 3 строки.
madmasles
я знаю, просто не хотел вопрос очередной задавать, вроде как в правилах так написано.
в том скрипте все гуд, кроме счетчика символов. не могу никак его сделать. Он не считает 3ее поле, он считает только сумму 1+2. Это мне не подходит.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

HaeMHuK
Из каких частей 1-ого и 2-ого полей должно состоять значение 3-его и по какому принципу должно быть обрезано его значение, если его длина больше 20 знаков?
 
Автор
H

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

не важно, пусть будет "1_2".
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

HaeMHuK,
Попробуйте так:
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$hForm = GUICreate("Form1", 320, 160, -1, -1)
$nInput1 = GUICtrlCreateInput("", 10, 10, 300, 20)
$nInput2 = GUICtrlCreateInput("", 10, 40, 300, 20)
$nInput3 = GUICtrlCreateInput("", 10, 70, 300, 20, $ES_READONLY)
$nInput4 = GUICtrlCreateInput("", 10, 100, 40, 20, $ES_READONLY)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

Func WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
	Local $nNotifyCode, $nID, $sFromInput1, $sFromInput2, $sToInput3

	$nNotifyCode = BitShift($iwParam, 16)
	$nID = BitAND($iwParam, 0xFFFF)
	If $nNotifyCode = $EN_CHANGE Then
		If $nID = $nInput1 Or $nID = $nInput2 Then
			$sFromInput1 = GUICtrlRead($nInput1)
			$sFromInput2 = GUICtrlRead($nInput2)
			If $sFromInput1 And $sFromInput2 Then
				$sToInput3 = StringLeft($sFromInput1 & '_' & $sFromInput2, 20)
				GUICtrlSetData($nInput3, $sToInput3)
				GUICtrlSetData($nInput4, StringLen($sToInput3))
			EndIf
		EndIf
	EndIf
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 
Автор
H

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

3ее поле не должно быть $ES_READONLY
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

HaeMHuK [?]
3ее поле не должно быть $ES_READONLY
Уберите.
 
Автор
H

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

)) Не проблема в том, чтобы убрать. А проблема в том, что если внести изменения в поле 3, то счетчик не меняется.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

HaeMHuK,
Вы бы написали подробно, что Вам нужно считать, что изменять и т.д.
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$hForm = GUICreate("Form1", 320, 160, -1, -1)
$nInput1 = GUICtrlCreateInput("", 10, 10, 300, 20)
$nInput2 = GUICtrlCreateInput("", 10, 40, 300, 20)
$nInput3 = GUICtrlCreateInput("", 10, 70, 300, 20)
$nInput4 = GUICtrlCreateInput("", 10, 100, 40, 20, $ES_READONLY)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

Func WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
	Local $nNotifyCode, $nID, $sFromInput1, $sFromInput2

	$nNotifyCode = BitShift($iwParam, 16)
	$nID = BitAND($iwParam, 0xFFFF)
	If $nNotifyCode = $EN_CHANGE Then
		Switch $nID
			Case $nInput1, $nInput2
				$sFromInput1 = GUICtrlRead($nInput1)
				$sFromInput2 = GUICtrlRead($nInput2)
				If $sFromInput1 And $sFromInput2 Then
					GUICtrlSetData($nInput3, StringLeft($sFromInput1 & '_' & $sFromInput2, 20))
					GUICtrlSetData($nInput4, StringLen(GUICtrlRead($nInput3)))
				EndIf
			Case $nInput3
				GUICtrlSetData($nInput3, StringLeft(GUICtrlRead($nInput3), 20))
				GUICtrlSetData($nInput4, StringLen(GUICtrlRead($nInput3)))
		EndSwitch
	EndIf
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

qsort [?]
Я точно ж помню, что оно все делалось стандартными функциями.
А GUIRegisterMsg() не "стандартная" функция?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 471
Репутация
2 401
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

HaeMHuK [?]
не хотел вопрос очередной задавать, вроде как в правилах так написано
В правилах также написано не создавать дублей тем, зачем создавать две темы с одинаковым заголовком, имеющее разное содержание?

Переименуй тему.

P.S
И не нужно писать в названий «Помогите создать скрипт», оно и так понятно в данном разделе.
 
Автор
H

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Re: [Данные, строки] Помогите создать скрипт, заполнение строк по определенным правилам!

qsort
твое не работает, но все равно спасибо за старание )
madmasles
спасибо, мне подходит, то что мне надо! :beer:
 
Верх