Hier eine kleine, einfache Funktion die eine "InputBox" mit einer Variablen Anzahl an Eingabe-Feldern erzeugt.
-------
Jedem Eingabe-Feld ist ein Text zugeordnet, dessen Stil festgelegt werden kann (siehe Funktionsbeschreibung).
Die Stile der Eingabe-Felder können ebenfalls beliebig verändert werden.
Die Ergebnis wird entweder als String geliefert, wobei die Eingaben darin mit dem Standard-Trennzeichen getrennt werden, oder als Array.
Spoiler anzeigen
Global $aTexts[5] = ["**Verzeichnis**", "Benutzer", "Passwort", "", "__Information__"]
Global $aInputSt[5] = [-1, -1, 32] ; $ES_PASSWORD = 32
Global $sValues = _MultiInput($aTexts, "Test", $aInputSt)
If Not @error Then MsgBox(0, "", $sValues)
; #FUNCTION# ===================================================================
; Name ..........: _MultiInput
; Description ...: InputBox with multiple inputs
; AutoIt Version : V3.3.0.0
; Syntax ........: _MultiInput(ByRef $aText[, $sTitle = ""[, $vInputStyle = -1[, $iInputWidth = 200[, $sButtonR = "OK"[, $sButtonL = "Cancel"[, $iReturnMode = 0]]]]]])
; Parameter(s): .: $aText - Array with the text for the input-controls.
; * Text-style:
; | **Text** = bold
; | ""Text"" = italic
; | __Text__ = underline
; | --Text-- = strike
; $sTitle - Optional: (Default = "") : Window-title
; $vInputStyle - Optional: (Default = -1) : Style for the input-controls.
; | single var for a global style, or
; | array for different styles
; * lool at the "GUI Control Styles"
; $iInputWidth - Optional: (Default = 200) : Width of the inputs
; $sButtonR - Optional: (Default = "OK") : Text of the right button
; $sButtonL - Optional: (Default = "Cancel") : Text of the left button
; $iReturnMode - Optional: (Default = 0) :
; | 0 Returns a single string, values seperated with the GUIDataSeparatorChar
; | 1 Returns an array with all values
; Return Value ..: Success - string or array, depending on $iReturnMode
; Failure - empty string
; @ERROR - 1 if cancel is pressed
; | 2 UBound($aT) <> UBound($aInputFormat)
; | 3 $aText not an array
; Author(s) .....: Thorsten Willert
; Date ..........: Sun Nov 08 12:25:22 CET 2009
; Version .......: 3.0
; Example .......:
;
;Global $aTexts[5] = ["**Verzeichnis**", "Benutzer", "Passwort", "", "__Information__"]
;Global $aInputSt[5] = [-1, -1, 32] ; $ES_PASSWORD = 32
; Global $sValues = _MultiInput($aTexts, "Test", $aInputSt)
; If Not @error Then MsgBox(0, "", $sValues)
; ==============================================================================
Func _MultiInput(ByRef $aText, $sTitle = "", $vInputStyle = -1, $iInputWidth = 200, $sButtonR = "OK", $sButtonL = "Cancel", $iReturnMode = 0)
Local $oldOpt = Opt('GUIOnEventMode', 0)
; Default parameters
If $iInputWidth < 100 Then $iInputWidth = 100
If $iInputWidth = Default Then $iInputWidth = 200
If $vInputStyle = Default Then $vInputStyle = -1
If $sButtonR = Default Then $sButtonR = "OK"
If $sButtonL = Default Then $sButtonL = "Cancel"
; Parameter check (arrays only)
If Not IsArray($aText) Then
SetError(3)
Return ""
EndIf
If IsArray($vInputStyle) And UBound($vInputStyle) <> UBound($aText) Then
SetError(2)
Return ""
EndIf
Local $iS = 6 ; char width
Local $iT = UBound($aText)
Local $input[$iT], $aTextStyle[$iT], $aTextWidth[$iT]
Local $iOfs = 0, $iLen = 0
Local $sSC = Opt("GUIDataSeparatorChar")
Local $sRet = ""
Local $InputStyle
If Not IsArray($vInputStyle) Then $InputStyle = $vInputStyle
; text width and styles
For $i = 0 To $iT - 1
$iLen = StringLen($aText[$i])
If $iLen > $iOfs Then $iOfs = $iLen ; max text width
If $iOfs < 10 Then $iOfs = 10
$aTextWidth[$i] = 400
$aTextStyle[$i] = 0
Select
; bold
Case StringRegExp($aText[$i], '^\*\*.*?\*\*$')
$aTextWidth[$i] = 600
$aText[$i] = StringMid($aText[$i], 3, $iLen - 4)
; italic
Case StringRegExp($aText[$i], '^"".*?""$')
$aTextStyle[$i] = 2
$aText[$i] = StringMid($aText[$i], 3, $iLen - 4)
; underline
Case StringRegExp($aText[$i], '^__.*?__$')
$aTextStyle[$i] = 4
$aText[$i] = StringMid($aText[$i], 3, $iLen - 4)
; strike
Case StringRegExp($aText[$i], '^--.*?--$')
$aTextStyle[$i] = 8
$aText[$i] = StringMid($aText[$i], 3, $iLen - 4)
EndSelect
Next
; GUI
Local $hWin = GUICreate($sTitle, $iOfs * $iS + $iInputWidth + 40, $iT * 25 + 55)
For $i = 0 To $iT - 1
If IsArray($vInputStyle) Then $InputStyle = $vInputStyle[$i]
Select
Case $aText[$i] <> ""
GUICtrlCreateLabel($aText[$i] & ":", 16, $i * 25 + 15, $iOfs * $iS)
GUICtrlSetFont(-1, 8.5, $aTextWidth[$i], $aTextStyle[$i])
$input[$i] = GUICtrlCreateInput("", $iOfs * $iS + 20, $i * 25 + 10, $iInputWidth, -1, $InputStyle)
Case Else
GUICtrlCreateLabel("", 16, 1)
EndSelect
Next
Local $ok = GUICtrlCreateButton($sButtonR, 16, $i * 25 + 20, 75)
GUICtrlSetState(-1, 512) ; $GUI_DEFBUTTON = 512
Local $cancel = GUICtrlCreateButton($sButtonL, $iOfs * $iS + $iInputWidth - 55, $i * 25 + 20, 75)
GUISetState(@SW_SHOW)
; /GUI
While True
Switch GUIGetMsg()
Case -3, $cancel ; $GUI_EVENT_CLOSE = -3
GUIDelete($hWin)
Opt('GUIOnEventMode', $oldOpt)
SetError(1)
Return ""
Case $ok
For $i = 0 To $iT - 2
$sRet &= GUICtrlRead($input[$i]) & $sSC
Next
$sRet &= GUICtrlRead($input[$i])
GUIDelete($hWin)
Opt('GUIOnEventMode', $oldOpt)
If $iReturnMode = 0 Then
Return $sRet
Else
Return StringSplit($sRet, $sSC, 2)
EndIf
EndSwitch
WEnd
EndFunc ;==>_MultiInput
Stilgar