1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. tztztz

Beiträge von tztztz

  • verschachtelte Switch-Anweisungen

    • tztztz
    • 18. Dezember 2014 um 12:25

    ah danke
    manchmal sieht man den Wald vor lauter Bäumen nicht ;)
    while-Schleife ist jetzt drin und alles funktioniert!

  • verschachtelte Switch-Anweisungen

    • tztztz
    • 18. Dezember 2014 um 11:48

    Hallo zusammen,

    ich habe folgendes Problem:
    in einer Switch ... Case Anweisung schließe ich eine GUI und öffne eine andere.
    Innerhalb des Cases will ich eine weitere Switch ... Case Anweisung durchführen, es kommt auch keine Fehlermeldung, jedoch wird auch nichts ausgeführt.

    Das ganze sieht etwa so aus (stark vereinfachtes Beispiel):

    Spoiler anzeigen
    [autoit]

    $Form1 = GUICreate("GUI", 100, 100, 100, 100)
    ;die Buttons sind vorhanden, auch wenn jetzt hier im Beispiel nicht erwähnt
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    ;eine kleine If-Abfrage (funktioniert einwandfrei)

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

    Case $Button2
    GUIDelete($Form1)

    $Form2 = GUICreate("GUI 2", 100, 100, 100, 100)
    $AndererButton1= GUICtrlCreateButton("Ein Knopf", 8, 8, 84, 25)
    $AndererButton2= GUICtrlCreateButton("Ein Knopf", 8, 40, 84, 25)
    GUISetState(@SW_SHOW)

    $uMsg = GUIGetMsg()
    Switch $uMsg
    Case $AndererButton1

    If (Bedingung) Then
    MsgBox(0,"Test","Bedingung 1 geht")
    ElseIf (Bedingung) Then
    MsgBox(0,"Test","Bedingung 2 geht")
    Else
    MsgBox(0,"Test","Bedingung 3 geht auch")
    EndIf

    Case $AndererButton2
    MsgBox(0,"Knopf2","Auch Knopf 2 funktioniert")
    Endswitch
    EndSwitch
    WEnd

    [/autoit]

    Die Bedingungen der äußeren Switch ... Case Anweisung gehen alle, allerdings keine der inneren...

    Was mache ich falsch?


    Danke vorab :)

  • Datum mit anderem Datum vergleichen

    • tztztz
    • 22. Mai 2014 um 11:00

    Danke, auf die Idee bin ich nicht gekommen.

    Ich hatte überlegt das Datum so zu vergleichen danach das "richtige" mit Stringsplit aufzutrennen und dann neu zusammenzusetzen.
    War halt aufgrund nicht einheitlichre Trennzeichen nciht möglich.

  • Datum mit anderem Datum vergleichen

    • tztztz
    • 22. Mai 2014 um 10:13

    Hallo zusammen,

    ich habe aktuell ein Datumsformal gewählt, das ich als String angebe, mit dem ich das Datum vergleichen kann (yyyy.mm.dd / hh:mm:ss

    gibt es eine Möglichkeit das Datum auf zu vergleichen
    wenn ich das deutsche Formal dd.mm.yyyy / hh:mm:ss verwenden will?

    Der Vergleich soll jedesmal nur richtig angeben, welches von beiden Daten neuer ist.


    Danke schonmal

  • GUI eingefroren

    • tztztz
    • 4. April 2014 um 10:26

    Hatte mich zwar nicht weitergebracht, mittlerweile ist das Problem allerdings erledigt (umgangen).
    Hab im Button einfach einen Befehl zum Script neu laden eingebaut, dadurch den Effekt den ich wollte.

  • GUI eingefroren

    • tztztz
    • 3. April 2014 um 13:11

    das hatte ich probiert, gab keinen Unterschied.

    Was ich vergessen hatte zu erwähnen: wenn ich den Speicherknopf drücke in dem 2ten GUI, dann werden beim Drücken des Schließen Knopfes beide Fenster geschlossen, falls ich nur den 2ten GUI schließe, ohne vorher zu speichern schließt sich nur der 2te GUI und der erste ist wie beschrieben eingefroren

  • GUI eingefroren

    • tztztz
    • 3. April 2014 um 12:00

    Hallo,

    tut mir Leid dass ich schon wieder was fragen muss, allerdings komm ich nicht weiter.

    Ich rufe über eine externe Funktion per Knopfdruck einen neuen GUI auf. So weit klappt alles,
    doch sobald ich den neuen GUI wieder schließen will, ist der erste (der mit dem Aufruf-Button)
    gefrohren und reagiert nicht mehr. Alles andere funktioniert einwandfrei.

    Ich poste hier mal die Funktion, die ich genommen habe (habe ich gefunden und leicht ausgedünnt, aber nicht selbst geschrieben)

    Meine Frage dazu: Liegt es an der Funktion, dass meine erste GUI einfriert, oder nicht?

    Spoiler anzeigen
    [autoit]

    Func _ArrayDisplay2(Const ByRef $avArray, $sTitle = "Array: ListView Display", $iItemLimit = -1, $iTranspose = 0, $sSeparator = "", $sReplace = "|", $sHeader = "")
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    ; Dimension checking
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
    If $iDimension > 2 Then Return SetError(2, 0, 0)

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

    ; Separator handling
    If $sSeparator = "" Then $sSeparator = Chr(124)

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

    ; Check the separator to make sure it's not used literally in the array
    If _ArraySearch($avArray, $sSeparator, 0, 0, 0, 1) <> -1 Then
    For $x = 1 To 255
    If $x >= 32 And $x <= 127 Then ContinueLoop
    Local $sFind = _ArraySearch($avArray, Chr($x), 0, 0, 0, 1)
    If $sFind = -1 Then
    $sSeparator = Chr($x)
    ExitLoop
    EndIf
    Next
    EndIf

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

    ; Declare variables
    Local $vTmp, $iBuffer = 4094 ; AutoIt max item size
    Local $iColLimit = 250
    Local $iOnEventMode = Opt("GUIOnEventMode", 0), $sDataSeparatorChar = Opt("GUIDataSeparatorChar", $sSeparator)

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

    ; Swap dimensions if transposing
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf

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

    ; Set limits for dimensions
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit

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

    ; Set header up
    If $sHeader = "" Then
    $sHeader = "Row " ; blanks added to adjust column size for big number of rows
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & "Col " & $i
    Next
    EndIf

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

    ; Convert array into text for listview
    Local $avArrayText[$iUBound + 1]
    For $i = 0 To $iUBound
    $avArrayText[$i] = "[" & $i & "]"
    For $j = 0 To $iSubMax
    ; Get current item
    If $iDimension = 1 Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf

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

    ; Add to text array
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)

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

    ; Set max buffer size
    If StringLen($vTmp) > $iBuffer Then $vTmp = StringLeft($vTmp, $iBuffer)

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

    $avArrayText[$i] &= $sSeparator & $vTmp
    Next
    Next

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

    ; GUI Constants
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000

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

    ; Set interface up
    Local $iWidth = 640, $iHeight = 480
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
    Local $aiGUISize = WinGetClientSize($hGUI)
    Local $hListView = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    Local $hSaveSelected = GUICtrlCreateButton("Save Selected", (($aiGUISize[0])/3) + 6, $aiGUISize[1] - 23, $aiGUISize[0]/3 - 9, 20)
    GUICtrlSetResizing($hListView, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    GUICtrlSetResizing($hSaveSelected, $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)

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

    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

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

    ; Fill listview
    For $i = 0 To $iUBound
    GUICtrlCreateListViewItem($avArrayText[$i], $hListView)
    Next

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

    ; adjust window width
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20

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

    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100

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

    WinMove($hGUI, "", (@DesktopWidth - $iWidth) / 2, Default, $iWidth)

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

    ; Show dialog
    GUISetState(@SW_SHOW, $hGUI)

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

    While 1
    Local $guiMsg = GUIGetMsg()
    Switch $guiMsg

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

    Case $GUI_EVENT_CLOSE
    GUIDelete ($hGUI)

    Case $hSaveSelected
    Global $sClip = ""
    ;
    Local $aiCurItems[1] = [0]
    For $i = 0 To GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next

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

    ; Generate clipboard text
    If Not $aiCurItems[0] Then
    For $sItem In $avArrayText
    $sClip &= $sItem & @CRLF
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]] & @CRLF
    Next
    EndIf
    If @error Then
    MsgBox(4096, "", "Save cancelled.")
    Else
    Return $sClip
    EndIf
    EndSwitch
    WEnd
    ; GUIDelete($hGUI)

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

    Opt("GUIOnEventMode", $iOnEventMode)
    Opt("GUIDataSeparatorChar", $sDataSeparatorChar)

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

    Return 1
    EndFunc

    [/autoit]

    ein Danke im Vorraus

  • Funktion zur Auswahl von Arrays

    • tztztz
    • 1. April 2014 um 10:32

    danke genau das was ich gebraucht habe :)

  • Funktion zur Auswahl von Arrays

    • tztztz
    • 1. April 2014 um 09:36

    danke, die Idee war gut :) ,

    Habe beim Suchen der originalen Funktion eine abgewandelte entdeckt, die mir an sich ganz gut passt,
    woran es allerdings bei mir hängt (sorry falls es einfach ist, bin recht unerfahren):

    ich kann den Wert zwar als ini speichern oder als Textfile aber will es als Variable, die ich im Script benutzen kann haben.

    Falls ich mich dumm anstelle bitte ich das zu entschuldigen!


    Hier die Funktion, die ich gefunden habe:

    [autoit]

    Func _ArrayDisplay2(Const ByRef $avArray, $sTitle = "Array: ListView Display", $iItemLimit = -1, $iTranspose = 0, $sSeparator = "", $sReplace = "|", $sHeader = "")
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    ; Dimension checking
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
    If $iDimension > 2 Then Return SetError(2, 0, 0)

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

    ; Separator handling
    If $sSeparator = "" Then $sSeparator = Chr(124)

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

    ; Check the separator to make sure it's not used literally in the array
    If _ArraySearch($avArray, $sSeparator, 0, 0, 0, 1) <> -1 Then
    For $x = 1 To 255
    If $x >= 32 And $x <= 127 Then ContinueLoop
    Local $sFind = _ArraySearch($avArray, Chr($x), 0, 0, 0, 1)
    If $sFind = -1 Then
    $sSeparator = Chr($x)
    ExitLoop
    EndIf
    Next
    EndIf

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

    ; Declare variables
    Local $vTmp, $iBuffer = 4094 ; AutoIt max item size
    Local $iColLimit = 250
    Local $iOnEventMode = Opt("GUIOnEventMode", 0), $sDataSeparatorChar = Opt("GUIDataSeparatorChar", $sSeparator)

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

    ; Swap dimensions if transposing
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf

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

    ; Set limits for dimensions
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit

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

    ; Set header up
    If $sHeader = "" Then
    $sHeader = "Row " ; blanks added to adjust column size for big number of rows
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & "Col " & $i
    Next
    EndIf

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

    ; Convert array into text for listview
    Local $avArrayText[$iUBound + 1]
    For $i = 0 To $iUBound
    $avArrayText[$i] = "[" & $i & "]"
    For $j = 0 To $iSubMax
    ; Get current item
    If $iDimension = 1 Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf

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

    ; Add to text array
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)

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

    ; Set max buffer size
    If StringLen($vTmp) > $iBuffer Then $vTmp = StringLeft($vTmp, $iBuffer)

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

    $avArrayText[$i] &= $sSeparator & $vTmp
    Next
    Next

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

    ; GUI Constants
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000

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

    ; Set interface up
    Local $iWidth = 640, $iHeight = 480
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
    Local $aiGUISize = WinGetClientSize($hGUI)
    Local $hListView = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    Local $hCopy = GUICtrlCreateButton("Copy Selected", 3, $aiGUISize[1] - 23, $aiGUISize[0]/3 - 9, 20)
    Local $hSaveSelected = GUICtrlCreateButton("Save Selected", (($aiGUISize[0])/3) + 6, $aiGUISize[1] - 23, $aiGUISize[0]/3 - 9, 20)
    Local $hSave = GUICtrlCreateButton("Save All", (2*($aiGUISize[0])/3) + 9, $aiGUISize[1] - 23, $aiGUISize[0]/3 - 9, 20)
    GUICtrlSetResizing($hListView, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    GUICtrlSetResizing($hCopy, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSetResizing($hSaveSelected, $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSetResizing($hSave, $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)

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

    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

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

    ; Fill listview
    For $i = 0 To $iUBound
    GUICtrlCreateListViewItem($avArrayText[$i], $hListView)
    Next

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

    ; adjust window width
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20

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

    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100

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

    WinMove($hGUI, "", (@DesktopWidth - $iWidth) / 2, Default, $iWidth)

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

    ; Show dialog
    GUISetState(@SW_SHOW, $hGUI)

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

    While 1
    Local $guiMsg = GUIGetMsg()
    Switch $guiMsg
    Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
    ExitLoop

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

    Case $hCopy,$hSaveSelected
    Local $sClip = ""

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

    ; Get selected indices [ _GUICtrlListView_GetSelectedIndices($hListView, True) ]
    Local $aiCurItems[1] = [0]
    For $i = 0 To GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next

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

    ; Generate clipboard text
    If Not $aiCurItems[0] Then
    For $sItem In $avArrayText
    $sClip &= $sItem & @CRLF
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]] & @CRLF
    Next
    EndIf
    If $hSaveSelected = $guiMsg Then
    $sFile = FileSaveDialog("Choose a name", @ScriptDir, "Text files (*.txt)", 16, "fred.txt")
    If @error Then
    MsgBox(4096, "", "Save cancelled.")
    Else
    MsgBox(4096, "", "You chose " & $sFile)
    ; IniWrite("Config.ini", "check", "check", $sClip) / die Zeile hab ich eingefügt, der Rest ist nur kopiert die Variable $sClip hat den String den ich brauche
    _FileCreate($sFile)
    FileWrite($sFile,$sClip)
    EndIf
    Else
    ClipPut($sClip)
    EndIf
    Case $hSave
    $sFile = FileSaveDialog("Choose a name", @ScriptDir, "Text files (*.txt)", 16, "fred.txt")
    If @error Then
    MsgBox(4096, "", "Save cancelled.")
    Else
    MsgBox(4096, "", "You chose " & $sFile)
    _FileWriteFromArray($sFile, $avArray)
    EndIf
    EndSwitch
    WEnd
    GUIDelete($hGUI)

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

    Opt("GUIOnEventMode", $iOnEventMode)
    Opt("GUIDataSeparatorChar", $sDataSeparatorChar)

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

    Return 1
    EndFunc ;==>_ArrayDisplay

    [/autoit]

    Zur Vollständigkeit hier noch die Quelle des Originals:
    http://www.autoitscript.com/forum/topic/15…-array-display/

  • Funktion zur Auswahl von Arrays

    • tztztz
    • 28. März 2014 um 11:29

    Hallo,

    ich wollte eine Funktion erstellen, die mir gewisse Arrays in einer Liste anzeigt (wie die Standartfunktion _arraydisplay)
    Allerdings soll die gewünschte Zeile angeklickt werden und mit Bestätigung auf einen Button in einer Variable gespeichert werden.

    Mein Problem dabei: ich kenn mich in der Materie sehr wenig aus.


    Kann mir jemand dabei helfen?

    Vielen Dank schonmal :)

  • Wert aus _ArrayDisplay in Variable speichern

    • tztztz
    • 26. März 2014 um 09:56

    Vielen Dank für eure Antworten!

  • Wert aus _ArrayDisplay in Variable speichern

    • tztztz
    • 21. März 2014 um 14:44

    Hallo zusammen,

    ich haben folgendes Problem:
    ich erstelle mithilfe einer Funktion eine Liste, die mit der Standartfunktion _ArrayDisplay angezeigt wird.
    So weit so gut, nun meine Frage, ist es möglich einen Wert aus der Liste durch anklicken in eine Variable zu speichern?

    Hatte mehrere Ansätze, da ich nicht weiß ob einer geeignet ist hier einfach mal mein xter Versuch als Codeausschnitt dabei

    Vielen Dank schon einmal

    [autoit]

    Global $infovar

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

    $Form1 = GUICreate("Dienste", 750, 750, -1, -1)

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

    $list = GUICtrlCreateListView("", 3, 25, 415, 315)
    $Refresh = GUICtrlCreateButton("Refresh", 500, 175)

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

    GUISetState(@SW_SHOW)

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

    while 1
    $nMsg = GUIGetMsg()
    select
    case $nMsg = $GUI_EVENT_CLOSE
    Exitloop
    case $nMsg = $Refresh
    _GetInfo($infovar, "All")
    Dim $var = _ArrayDisplay($infovar)
    GUICtrlCreateListViewItem($var, $list)
    endselect
    wend

    [/autoit]

    PS: Mir ist bewusst dass meine GUI ziemlich grauenvoll aussieht, diese dient aber in dem Fall nur zu Testzwecken :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™