Dynamische Oberfläche

  • Help Please,


    komme leider nicht mehr weiter, ich krieg den text nicht in einer Dynamischen Oberfläche rein,
    ich brauch für $text = $Kluster[1][1] jeweils ein Edit Feld was mit der anzahl der Textbausteine mitwächst,
    macht ich falsch?

    [autoit]


    #include <Array.au3>
    #include <String.au3>
    Global $sTB, $sIni = "TextBausteine.ini"

    [/autoit][autoit][/autoit][autoit]

    Global $var = IniReadSection($sIni, "Bausteine")
    $thema =""
    $List1 = GUICtrlCreateEdit("", 40, 72, 417, 253)
    For $i = 1 to UBound ($var,1) +1

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Global $Kluster = IniReadSection($sIni, "Kluster" &$i )

    [/autoit][autoit][/autoit][autoit]

    $text = StringReplace($Kluster, "_%CRLF%_", @CRLF) ;
    $text = StringReplace($Kluster, "_%CR%_", @CR)
    $text = StringReplace($Kluster, "_%LF%_", @LF)

    [/autoit][autoit][/autoit][autoit]

    $text = $Kluster[1][1]
    $produkt = $Kluster[2][1]
    $tatigkeit = $Kluster[3][1]
    $thema = $Kluster[4][1]
    GUICtrlSetData($List1, $text) ;Baustein in Edit-Box anzeigen

    [/autoit][autoit][/autoit][autoit]

    Next

    [/autoit][autoit][/autoit][autoit]

    Example()

    [/autoit][autoit][/autoit][autoit]

    Func Example()
    Local $msg

    [/autoit][autoit][/autoit][autoit]

    GUICreate("Meine GUI") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird

    [/autoit][autoit][/autoit][autoit]

    GUISetState() ; Zeigt ein leeres Dialogfenster an

    [/autoit][autoit][/autoit][autoit]

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    While 1
    $msg = GUIGetMsg()

    [/autoit][autoit][/autoit][autoit]

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    EndFunc ;==>Example

    [/autoit][autoit][/autoit][autoit][/autoit]


    .Ini Datei


  • Woher weißt du das, dass StringReplace mit Arrays umgehen kann???
    Und in deiner Ini musst du auch mal ein Stil beibehalten. Das "=" mal ohne Leerzeichen davor und danach, mal davor eins mal nicht, mal danach eins mal nicht.
    Eigentlich gehört um das "=" keine Leerzeichen.

    Meinst du es so?

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $sTB, $sIni = "TextBausteine.ini", $aCluster
    Global $var = IniRead($sIni, "Bausteine", "Anzahl", 0)
    Global $thema = ""

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUICreate("Meine GUI")
    Global $List1 = GUICtrlCreateEdit("", 40, 70, 400, 250)
    For $i = 1 To $var
    $aCluster = IniReadSection($sIni, "Kluster" & $i )

    [/autoit] [autoit][/autoit] [autoit]

    $aCluster[1][1] = StringReplace($aCluster[1][1], "_%CRLF%_", @CRLF)
    $aCluster[1][1] = StringReplace($aCluster[1][1], "_%CR%_", @CR)
    $aCluster[1][1] = StringReplace($aCluster[1][1], "_%LF%_", @LF)

    [/autoit] [autoit][/autoit] [autoit]

    $text = $aCluster[1][1]
    $produkt = $aCluster[2][1]
    $tatigkeit = $aCluster[3][1]
    $thema = $aCluster[4][1]
    GUICtrlSetData($List1, GUICtrlRead($List1) & $text & @CRLF)
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

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

    [/autoit]

    Einmal editiert, zuletzt von m-obi (12. September 2012 um 10:17)

    • Offizieller Beitrag

    Hier hast du mal ein Beispiel, wie du deine GUI dynamisch vergrößern kannst:

    [autoit]

    Global $aInput[2] = [1]

    [/autoit][autoit][/autoit][autoit]

    $GUI = GUICreate('Test', 400, 50)
    $aInput[1] = GUICtrlCreateInput('', 10, 10, 300, 21)
    GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
    $btAdd = GUICtrlCreateButton('Add Input', 320, 10, 70, 21)
    GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $btAdd
    _NewCtrl()
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _NewCtrl()
    Local $iDiff = 31 ; == Abstand + Höhe ==> 10 + 21
    Local Static $iY = 10 ; == Startwert vom ersten Ctrl
    $aInput[0] += 1
    ReDim $aInput[$aInput[0]+1]
    $iY += $iDiff
    Local $aWin = WinGetPos($GUI)
    WinMove($GUI, '', $aWin[0], $aWin[1], $aWin[2], $aWin[3] + 31)
    $aInput[$aInput[0]] = GUICtrlCreateInput('', 10, $iY, 300, 21)
    GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
    EndFunc

    [/autoit]
  • Super viellen dank für die schnelle Hilfe,

    klappt soweit aber für jedes $text = $aCluster[1][1] krieg ich irgend wie nicht hin ein eigenes edit feld zu bauen

    mein ansatz:

    $idEdit[$i - 1] = GUICtrlCreateEdit($var[$i][1], $Links + 90 ,$breite, $hoehe, $WS_VSCROLL)

    könnt ihr mir nochmal helfen, bitte bitte?

  • So?

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $sTB, $sIni = "TextBausteine.ini", $aCluster, $acEdit[4]
    Global $var = IniRead($sIni, "Bausteine", "Anzahl", 0)
    Global $thema = ""

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUICreate("Meine GUI", 900, 400)
    For $i = 0 To $var - 1
    $aCluster = IniReadSection($sIni, "Kluster" & $i + 1 )

    [/autoit] [autoit][/autoit] [autoit]

    $aCluster[1][1] = StringReplace($aCluster[1][1], "_%CRLF%_", @CRLF)
    $aCluster[1][1] = StringReplace($aCluster[1][1], "_%CR%_", @CR)
    $aCluster[1][1] = StringReplace($aCluster[1][1], "_%LF%_", @LF)

    [/autoit] [autoit][/autoit] [autoit]

    $acEdit[$i] = GUICtrlCreateEdit($aCluster[1][1], 20 + ($i * 220), 70, 200, 100, $WS_VSCROLL)

    [/autoit] [autoit][/autoit] [autoit]

    $text = $aCluster[1][1]
    $produkt = $aCluster[2][1]
    $tatigkeit = $aCluster[3][1]
    $thema = $aCluster[4][1]
    ;~ GUICtrlSetData($List1, GUICtrlRead($List1) & $text & @CRLF)
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

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

    [/autoit]


    Vielleicht solltest du dir auch mal die Hilfe ansehen, dann vergisst du auch keine Parameter.