Moin zusammen,
wie kann ich nachdem ich ein ListItem mit _GUICtrlListSwapString von der Position verschoben habe anschließend wieder markieren lassen?
Anbei ein Beispiel zum testen!
Spoiler anzeigen
C
;-----------------
; Include
;-----------------
#include <GUIConstants.au3>
#include <GuiList.au3>
;-----------------
; Optionen
;-----------------
Opt("TrayIconHide", 1)
Opt("GUIOnEventMode", 1)
Opt("RunErrorsFatal", 0)
Opt("TrayMenuMode", 1)
$Runonce = GUICreate("RunOnce Generator", 616, 363)
$Runonce_Group1 = GUICtrlCreateGroup("", 16, 16, 585, 298)
GUICtrlCreateLabel("Diese Befehle werden bei der ersten Anmeldung ausgeführt", 56, 64, 284, 17)
$Runonce_Input1 = GUICtrlCreateInput("", 57, 86, 278, 21)
GUICtrlSetOnEvent(-1, "_runonce_add")
$Runonce_List1 = GUICtrlCreateList("", 56, 120, 322, 149, BitOR($WS_HSCROLL,$WS_BORDER))
$Runonce_Button1 = GUICtrlCreateButton("Hinzufügen", 424, 264, 75, 25, 0)
GUICtrlSetOnEvent(-1, "_runonce_add")
$Runonce_Button2 = GUICtrlCreateButton("Bearbeiten", 512, 264, 75, 25, 0)
GUICtrlSetOnEvent(-1, "_runonce_edit")
$Runonce_Button3 = GUICtrlCreateButton("?", 343, 88, 18, 17, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Runonce_del = GUICtrlCreateButton(" X", 383, 136)
GUICtrlSetOnEvent(-1, "_runonce_clear")
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$Runonce_Button5 = GUICtrlCreateButton("H", 383, 191)
GUICtrlSetOnEvent(-1, "_runonce_up")
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Runonce_Button6 = GUICtrlCreateButton("R", 383, 224)
GUICtrlSetOnEvent(-1, "_runonce_down")
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Runonce_weiter = GUICtrlCreateButton("Weiter", 410, 325, 75, 25, 0)
;~ GUICtrlSetOnEvent(-1, "_runonce_weiter")
$Runonce_back = GUICtrlCreateButton("Zurück", 295, 325, 75, 25, 0)
;~ GUICtrlSetOnEvent(-1, "_runonce_back")
$Runonce_exit = GUICtrlCreateButton("Abbrechen", 525, 325, 75, 25, 0)
GUICtrlSetOnEvent(-1, "schliessen")
While 1
Sleep(20)
WEnd
Func _runonce_add()
If GUICtrlRead($Runonce_Input1) = "" Then
Else
_GUICtrlListAddItem($Runonce_List1, GUICtrlRead($Runonce_Input1))
GUICtrlSetData($Runonce_Input1, "")
EndIf
EndFunc
Func _runonce_clear()
$Text = _GUICtrlListGetText ($Runonce_List1, _GUICtrlListSelectedIndex ($Runonce_List1))
If $Text = "" Then
Else
_GUICtrlListDeleteItem ($Runonce_List1, _GUICtrlListGetCaretIndex($Runonce_List1))
EndIf
EndFunc
Func _runonce_edit()
$Text = _GUICtrlListGetText ($Runonce_List1, _GUICtrlListSelectedIndex ($Runonce_List1))
If ($Text == $LB_ERR) Then
MsgBox(16, "Error", "Kein Eintrag markiert!")
Else
GUICtrlSetData($Runonce_Input1, $Text)
_GUICtrlListDeleteItem ($Runonce_List1, _GUICtrlListGetCaretIndex($Runonce_List1))
EndIf
EndFunc
Func _runonce_up()
If _GUICtrlListSelectedIndex ($Runonce_List1) = 0 Then
Else
_GUICtrlListSwapString($Runonce_List1, _GUICtrlListSelectedIndex ($Runonce_List1), _GUICtrlListSelectedIndex ($Runonce_List1)-1)
EndIf
EndFunc
Func _runonce_down()
If _GUICtrlListSelectedIndex ($Runonce_List1) = _GUICtrlListGetInfo ($Runonce_List1)-1 Then
Else
_GUICtrlListSwapString($Runonce_List1, _GUICtrlListSelectedIndex ($Runonce_List1), _GUICtrlListSelectedIndex ($Runonce_List1) 1)
EndIf
EndFunc
Func schliessen()
If MsgBox(4 32 256 8192, "RunOnce Generator beenden", "Soll der RunOnce Generator wirklich beendet werden?") = 6 Then
Exit
EndIf
EndFunc
Alles anzeigen
Mfg
Analyzer