InputBox Länge Eingabe

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

aeran
Posts: 21
Joined: 13 Apr 2016, 09:06

InputBox Länge Eingabe

06 May 2016, 04:20

Hallo,
ich habe einen Einfachen Skript, womit man Eingaben in Datei schreiben kann.
Dazu gibt es ein Textfeld, mit drei Inputboxen, welches später die drei Eingaben als eine ganze Variable speichert und in das eine Textfeld eingibt (Damit Fehltippen minimiert wird)
Jedoch habe ich das Problem, dass meine Mitarbeiter direkt alles in das erste Inputbox eingeben und die nächsten beiden leer lassen.... Ja es funktioniert erstmal, aber die anderen beiden Variablen sind leer, somit kann das Programm nicht richtig weiterarbeiten....
Damit so etwas nicht noch einmal passiert, habe ich mir die überlegung, dass man vielleicht die Eingabelänge vom Inputbox beschränken kann, dass man wirklich nicht mehr als z.B. 8 Zeichenfolgen eingeben kann. Ist so etwas möglich?
lg aeran

Code: Select all

			InputBox, DeliverID, DeliverID, Deliver ID: for Example 237_180416
			InputBox, DeliverNo, DeliverNo, Which delivery? for Example 01
			InputBox, CoBox, CoBox, CO?
			
			Delivery = %DeliverID%_%DeliverNo%
			GuiControl, Text, Delivery, %Delivery%
just me
Posts: 7294
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: InputBox Länge Eingabe

06 May 2016, 11:03

Hallo,

ich habe hier gerade etwas, was Du nutzen können solltest:

Code: Select all

#NoEnv
SetBatchLines, -1

BoxTitle := "Wiederholungen"
BoxPrompt := "Geben Sie eine Zahl von 1 bis 1000 ein:"
SetTimer, RestrictBoxInput, -10
InputBox, Anzahl, %BoxTitle%, %BoxPrompt%, , , 150, , , , , 1
If (ErrorLevel) || (Anzahl = "")
   MsgBox, Das war mal nix!
Else
   MsgBox, Na gut, dann machen wir das %Anzahl% mal!
Return

RestrictBoxInput:
   WinWaitActive, %BoxTitle% ahk_class #32770 ahk_exe AutoHotkey.exe, %BoxPrompt%, 1
   If (ErrorLevel) ; da kam kein Fenster
      Return
   Control, Style, +0x2000, Edit1   ; ES_NUMBER - Eingabe auf Ziffern beschränken
   PostMessage, 0x00C5, 4, 0, Edit1 ; EM_LIMITTEXT - Eingabe auf maximal 4 Zeichen begrenzen
Return
Deine Mitarbeiter wären Dir aber bestimmt dankbar, wenn Du für die drei EIngaben ein eigenes gemeinsames Fenster (Gui) bereitstellen würdest. Dann wäre auch die Prüfung auf fehlerhafte Eingaben leichter.
garry
Posts: 2431
Joined: 22 Dec 2013, 12:50

Re: InputBox Länge Eingabe

07 May 2016, 11:17

Beispiel mit GUI :
input-1 = 6 digits
input-2 = 3 digits
input-3 = 2 characters

Nach Eingabe der benötigter Anzahl Zeichen springt der Cursor ins nächste Feld , am Schluss zeigt's die Eingaben an

Code: Select all

#NoEnv
#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
SetBatchLines, -1

Gui,1: default
Gui,1:Color, Black
Gui,1:Color, ControlColor, Black
Gui,1:Font,cYellow s12,Lucida Console

Gui, Add, Text,x10  y10 , DeliverID (6) :
Gui, Add, Edit,x170 y10  h25 w80 gCh1 vE1 number limit6,
Gui, Add, Text,x10  y40 , DeliverNo (3) :
Gui, Add, Edit,x170 y40  h25 w80 gCh2 vE2 number limit3,
Gui, Add, Text,x10  y70 , CoBox     (2) :
Gui, Add, Edit,x170 y70  h25 w80  gCh3 vE3       limit2,
Gui, Add, Edit,x170 y120 h70 w220    vResult -vscroll readonly cGray
Gui,add,button,x0 y0 h0 w0 gA1 default
Gui, Show, x500 y100 h400 w500, Inputs
return
Guiclose:
exitapp

ch1:
Gui, Submit, NoHide
if (StrLen(E1) = 6)
 GuiControl, Focus, % "E" . (SubStr(A_GuiControl, 0) + 1)
return

ch2:
Gui, Submit, NoHide
if (StrLen(E2) = 3)
 GuiControl, Focus, % "E" . (SubStr(A_GuiControl, 0) + 1)
return

ch3:
Gui, Submit, NoHide
if (StrLen(E3) = 2)
  gosub,a1
return

A1:
  GuiControl, Focus,Result
  Guicontrol,1: ,Result
  Delivery = %E1%_%E2%
  Guicontrol,1: ,Result,E1=%e1%`nE2=%e2%`nE3=%e3%`nDelivery=%delivery%
return

;===========================================================
aeran
Posts: 21
Joined: 13 Apr 2016, 09:06

Re: InputBox Länge Eingabe

12 May 2016, 09:44

danke, an euch beiden

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: Ahk_fan, glnklein and 5 guests