Hallo =) ich hab ein kleines prob:
in meinem Script (unten) funktioniert weder das Sortieren noch das Löschen (also die funktion Funktion _GUICtrlListView_DeleteItemsSelected).. Ich finde den Fehler einfach nicht und deswegen frage ich euch.. [Bitte regt euch nicht über scriptfehler auf wie falsche schleifen etc,etc bin doch noch lernend :)]
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#Include <GuiListView.au3>
#Include <GuiButton.au3>
#include <EditConstants.au3>
#Region Mainform
$kundenplaner = GUICreate("Kundenplaner by Skyth (c)", 700, 500)
$kundenliste=GUICtrlCreateListView ( "",0,0,700,300,$LVS_SHOWSELALWAYS)
_GUICtrlListView_AddColumn($kundenliste, "ID", 30)
_GUICtrlListView_AddColumn($kundenliste, "Vorname", 100)
_GUICtrlListView_AddColumn($kundenliste, "Nachname", 120)
_GUICtrlListView_AddColumn($kundenliste, "Firma", 140)
_GUICtrlListView_AddColumn($kundenliste, "Webseite", 130)
_GUICtrlListView_AddColumn($kundenliste, "Fertigstellung", 175)
$Menueleiste = GUICtrlCreateMenu("Datei")
$Laden = GUICtrlCreateMenuItem("Kundendatei Laden...", $Menueleiste)
$Laden = GUICtrlCreateMenuItem("", $Menueleiste) ;Trennlinie für das Menü
$contextmenu=GUICtrlCreateContextMenu ($kundenliste)
$cmAdd=GUICtrlCreateMenuitem ( "Kunden hinzufügen", $contextmenu )
$cmEdit=GUICtrlCreateMenuitem ( "Kunden bearbeiten", $contextmenu )
$cmDel=GUICtrlCreateMenuitem ( "Kunden löschen", $contextmenu )
$btn_kundenadd= GUICtrlCreateButton("Kunden hinzufügen", 8, 312, 105, 33, 0)
GUISetState(@SW_SHOW,$kundenplaner)
#EndRegion Mainform
#Region FTP and CMS hidden form
$ftpandcmsdata=GUICtrlCreateListView ( "",700,0,700,300)
GUICtrlSetState($ftpandcmsdata,@SW_HIDE)
_GUICtrlListView_AddColumn($ftpandcmsdata, "ftpserver", 100)
_GUICtrlListView_AddColumn($ftpandcmsdata, "ftpbenutzername", 100)
_GUICtrlListView_AddColumn($ftpandcmsdata, "ftppasswort", 100)
_GUICtrlListView_AddColumn($ftpandcmsdata, "ftpport", 100)
_GUICtrlListView_AddColumn($ftpandcmsdata, "cmsbenutzername", 100)
_GUICtrlListView_AddColumn($ftpandcmsdata, "cmspasswort", 100)
_GUICtrlListView_AddColumn($ftpandcmsdata, "cmsadminlogin", 100)
_GUICtrlListView_AddColumn($ftpandcmsdata, "notiz", 100)
#EndRegion FTP and CMS hidden form
#Region Neuer Kunde/ Kunden bearbeiten
$hinzufuegen = GUICreate("Kunden Hinzufügen", 559, 413)
$hinzufuegen_grp_ftplogin = GUICtrlCreateGroup("FTP Logindaten:", 8, 152, 233, 115)
$hinzufuegen_label_ftpserver = GUICtrlCreateLabel("Server:", 16, 171, 38, 17)
$hinzufuegen_label_ftpuser = GUICtrlCreateLabel("Benutzername:", 16, 195, 75, 17)
$hinzufuegen_label_ftppw = GUICtrlCreateLabel("Passwort:", 16, 219, 50, 17)
$hinzufuegen_label_ftpport = GUICtrlCreateLabel("Port:", 16, 243, 26, 17)
$hinzufuegen_input_ftpserver = GUICtrlCreateInput("", 104, 168, 129, 21)
$hinzufuegen_input_ftpuser = GUICtrlCreateInput("", 104, 192, 129, 21)
$hinzufuegen_input_ftppw = GUICtrlCreateInput("", 104, 216, 129, 21)
$hinzufuegen_input_ftpport = GUICtrlCreateInput("", 104, 240, 57, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hinzufuegen_grp_cmslogin = GUICtrlCreateGroup("CMS Logindaten:", 8, 272, 233, 91)
$hinzufuegen_label_cmsuser = GUICtrlCreateLabel("Benutzername:", 16, 292, 75, 17)
$hinzufuegen_label_cmspw = GUICtrlCreateLabel("Passwort:", 16, 315, 50, 17)
$hinzufuegen_label_cmsadmin = GUICtrlCreateLabel("Admin Panel:", 16, 339, 66, 17)
$hinzufuegen_input_cmsuser = GUICtrlCreateInput("", 104, 288, 129, 21)
$hinzufuegen_input_cmspw = GUICtrlCreateInput("", 104, 312, 129, 21)
$hinzufuegen_input_cmsadmin = GUICtrlCreateInput("", 104, 336, 129, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hinzufuegen_grp_allgeimein = GUICtrlCreateGroup("Allgemeine Infos", 8, 8, 233, 137)
$hinzufuegen_label_algname = GUICtrlCreateLabel("Vorname:", 16, 26, 45, 17)
$hinzufuegen_label_algnachname = GUICtrlCreateLabel("Nachname:", 16, 50, 59, 17)
$hinzufuegen_label_algwebsite = GUICtrlCreateLabel("Webseite:", 16, 98, 52, 17)
$hinzufuegen_label_algfirma = GUICtrlCreateLabel("Firma:", 16, 74, 32, 17)
$hinzufuegen_label_algfertig = GUICtrlCreateLabel("Fertigstellung:", 16, 120, 69, 17)
$hinzufuegen_input_algname = GUICtrlCreateInput("", 96, 24, 137, 21)
$hinzufuegen_input_algnachname = GUICtrlCreateInput("", 96, 48, 137, 21)
$hinzufuegen_input_algfirma = GUICtrlCreateInput("", 96, 72, 137, 21)
$hinzufuegen_input_algwebsite = GUICtrlCreateInput("", 96, 96, 137, 21)
$hinzufuegen_date = GUICtrlCreateDate("2010/05/15 00:36:57", 96, 120, 137, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hinzufuegen_btn_add = GUICtrlCreateButton("Hinzufügen", 8, 370, 97, 33, 0)
$hinzufuegen_btn_save = GUICtrlCreateButton("Speichern", 8, 370, 97, 33, 0)
_GUICtrlButton_Show($hinzufuegen_btn_add,1)
_GUICtrlButton_Show($hinzufuegen_btn_save,0)
$hinzufuegen_btn_abbrechen = GUICtrlCreateButton("Abbrechen", 110, 370, 91, 33, 0)
$hinzufuegen_grp_notizen = GUICtrlCreateGroup("Notizen:", 248, 8, 305, 355)
$notizen = GUICtrlCreateEdit("", 256, 24, 289, 330,BitOR($ES_AUTOVSCROLL,$ES_MULTILINE,$ES_WANTRETURN))
$hinzufuegen_label_gespeichert = GUICtrlCreateLabel("Gespeichert", 496, 392, 61, 17)
GUICtrlSetColor ( $hinzufuegen_label_gespeichert,0x00FF00)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlSetState($hinzufuegen_label_gespeichert,$GUI_HIDE)
#endregion Neuer Kunde
$zeile=1
$zeile2=2
If FileExists("kunden.txt") Then
While 1
$lesen=FileReadLine("kunden.txt",$zeile)
$lesen2=FileReadLine("kunden.txt",$zeile2)
If @error Then ExitLoop
$zeile=$zeile+2
$zeile2=$zeile2+2
GUICtrlCreateListViewItem($lesen, $kundenliste)
GUICtrlCreateListViewItem($lesen2, $ftpandcmsdata)
Wend
EndIf
_GUICtrlListView_RegisterSortCallBack($kundenplaner)
While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
Switch $nMsg[1]
Case $kundenplaner
$save=MsgBox(35, "Beenden", "Wollen die aktuellen Daten speichern?")
If $save = 7 Then
Exit
ElseIf $save = 6 Then
FileDelete("kunden.txt")
$open=FileOpen("kunden.txt",1)
For $read=0 To _GUICtrlListView_GetItemCount($kundenliste)-1
$auslesen=_GUICtrlListView_GetItemTextString($kundenliste,$read)
$auslesen2=_GUICtrlListView_GetItemTextString($ftpandcmsdata,$read)
FileWrite($open,$auslesen&@CRLF)
FileWrite($open,$auslesen2&@CRLF)
Next
FileClose($open)
Exit
EndIf
Case $hinzufuegen
closeadd()
GUICtrlSetData($hinzufuegen_input_algname,"")
GUICtrlSetData($hinzufuegen_input_algnachname,"")
GUICtrlSetData($hinzufuegen_input_algfirma,"")
GUICtrlSetData($hinzufuegen_input_algwebsite,"")
GUICtrlSetData($hinzufuegen_date,"")
GUICtrlSetData($hinzufuegen_input_ftpserver,"")
GUICtrlSetData($hinzufuegen_input_ftpuser,"")
GUICtrlSetData($hinzufuegen_input_ftppw,"")
GUICtrlSetData($hinzufuegen_input_ftpport,"")
GUICtrlSetData($hinzufuegen_input_cmsuser,"")
GUICtrlSetData($hinzufuegen_input_cmspw,"")
GUICtrlSetData($hinzufuegen_input_cmsadmin,"")
GUICtrlSetData($notizen,"")
WinActivate($kundenplaner)
EndSwitch
Case $kundenplaner
_GUICtrlListView_SortItems($kundenplaner, GUICtrlGetState($kundenplaner))
Case $btn_kundenadd,$cmAdd
GUICtrlSetState($hinzufuegen_label_gespeichert,$GUI_HIDE)
openadd(0)
Case $cmEdit
GUICtrlSetState($hinzufuegen_label_gespeichert,$GUI_HIDE)
For $focused=0 To _GUICtrlListView_GetItemCount($kundenliste)-1
If _GUICtrlListView_GetItemFocused($kundenliste, $focused)=True Then
$focus=$focused+1
ExitLoop
Else
$focus=False
EndIf
Next
If $focus=False Then
Else
openadd(1)
$editarray=StringSplit(_GUICtrlListView_GetItemTextString($kundenliste,$focus-1),"|")
$editarray1=StringSplit(_GUICtrlListView_GetItemTextString($ftpandcmsdata,$focus-1),"|")
GUICtrlSetData($hinzufuegen_input_algname,$editarray[2])
GUICtrlSetData($hinzufuegen_input_algnachname,$editarray[3])
GUICtrlSetData($hinzufuegen_input_algfirma,$editarray[4])
GUICtrlSetData($hinzufuegen_input_algwebsite,$editarray[5])
GUICtrlSetData($hinzufuegen_date,monatsrechner($editarray[6]))
GUICtrlSetData($hinzufuegen_input_ftpserver,$editarray1[1])
GUICtrlSetData($hinzufuegen_input_ftpuser,$editarray1[2])
GUICtrlSetData($hinzufuegen_input_ftppw,$editarray1[3])
GUICtrlSetData($hinzufuegen_input_ftpport,$editarray1[4])
GUICtrlSetData($hinzufuegen_input_cmsuser,$editarray1[5])
GUICtrlSetData($hinzufuegen_input_cmspw,$editarray1[6])
GUICtrlSetData($hinzufuegen_input_cmsadmin,$editarray1[7])
GUICtrlSetData($notizen,$editarray1[8])
EndIf
Case $hinzufuegen_btn_save
$eingabename=GUICtrlRead($hinzufuegen_input_algname)
$eingabenachname=GUICtrlRead($hinzufuegen_input_algnachname)
$eingabefirma=GUICtrlRead($hinzufuegen_input_algfirma)
$eingabewebsite=GUICtrlRead($hinzufuegen_input_algwebsite)
$eingabefertig=GUICtrlRead($hinzufuegen_date)
$eingabeftpserver=GUICtrlRead($hinzufuegen_input_ftpserver)
$eingabeftpbenutzername=GUICtrlRead($hinzufuegen_input_ftpuser)
$eingabeftppasswort=GUICtrlRead($hinzufuegen_input_ftppw)
$eingabeftpport=GUICtrlRead($hinzufuegen_input_ftpport)
$cmsbenutzername=GUICtrlRead($hinzufuegen_input_cmsuser)
$cmspasswort=GUICtrlRead($hinzufuegen_input_cmspw)
$cmsadminpanel=GUICtrlRead($hinzufuegen_input_cmsadmin)
$eingabenotiz=GUICtrlRead($notizen)
$eingabenotiz=StringReplace($eingabenotiz,Chr(13)&Chr(10)," ")
_GUICtrlListView_AddSubItem($kundenliste, $focus-1, $eingabename,1)
_GUICtrlListView_AddSubItem($kundenliste, $focus-1, $eingabenachname,2)
_GUICtrlListView_AddSubItem($kundenliste, $focus-1, $eingabefirma,3)
_GUICtrlListView_AddSubItem($kundenliste, $focus-1, $eingabewebsite,4)
_GUICtrlListView_AddSubItem($kundenliste, $focus-1, $eingabefertig,5)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $eingabeftpserver,1)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $eingabeftpbenutzername,2)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $eingabeftppasswort,3)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $eingabeftpport,4)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $cmsbenutzername,5)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $cmspasswort,6)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $cmsadminpanel,7)
_GUICtrlListView_AddSubItem($ftpandcmsdata, $focus-1, $eingabenotiz,8)
GUICtrlSetState($hinzufuegen_label_gespeichert,$GUI_SHOW)
Case $hinzufuegen_btn_add
GUICtrlSetState($hinzufuegen_label_gespeichert,$GUI_HIDE)
$eingabename=GUICtrlRead($hinzufuegen_input_algname)
$eingabenachname=GUICtrlRead($hinzufuegen_input_algnachname)
$eingabefirma=GUICtrlRead($hinzufuegen_input_algfirma)
$eingabewebsite=GUICtrlRead($hinzufuegen_input_algwebsite)
$eingabefertig=GUICtrlRead($hinzufuegen_date)
$eingabeftpserver=GUICtrlRead($hinzufuegen_input_ftpserver)
$eingabeftpbenutzername=GUICtrlRead($hinzufuegen_input_ftpuser)
$eingabeftppasswort=GUICtrlRead($hinzufuegen_input_ftppw)
$eingabeftpport=GUICtrlRead($hinzufuegen_input_ftpport)
$cmsbenutzername=GUICtrlRead($hinzufuegen_input_cmsuser)
$cmspasswort=GUICtrlRead($hinzufuegen_input_cmspw)
$cmsadminpanel=GUICtrlRead($hinzufuegen_input_cmsadmin)
$eingabenotiz=GUICtrlRead($notizen)
$eingabenotiz=StringReplace($eingabenotiz,Chr(13)&Chr(10)," ")
If StringLen($eingabename)<3 Or StringLen($eingabenachname)<3 Then
GUICtrlSetState($hinzufuegen_label_gespeichert,$GUI_HIDE)
MsgBox(0,"Fehler",'Bitte füllen sie mindestens die Felder "Vorname" und "Nachname" aus.')
Else
GUICtrlCreateListViewItem(_GUICtrlListView_GetItemCount($kundenliste)+1&"|"&$eingabename&"|"&$eingabenachname&"|"&$eingabefirma&"|"&$eingabewebsite&"|"&$eingabefertig,$kundenliste)
GUICtrlCreateListViewItem($eingabeftpserver&"|"&$eingabeftpbenutzername&"|"&$eingabeftppasswort&"|"&$eingabeftpport&"|"&$cmsbenutzername&"|"&$cmspasswort&"|"&$cmsadminpanel&"|"&$eingabenotiz,$ftpandcmsdata)
GUICtrlSetState($hinzufuegen_label_gespeichert,$GUI_SHOW)
EndIf
GUICtrlSetData($hinzufuegen_input_algname,"")
GUICtrlSetData($hinzufuegen_input_algnachname,"")
GUICtrlSetData($hinzufuegen_input_algfirma,"")
GUICtrlSetData($hinzufuegen_input_algwebsite,"")
GUICtrlSetData($hinzufuegen_date,"")
GUICtrlSetData($hinzufuegen_input_ftpserver,"")
GUICtrlSetData($hinzufuegen_input_ftpuser,"")
GUICtrlSetData($hinzufuegen_input_ftppw,"")
GUICtrlSetData($hinzufuegen_input_ftpport,"")
GUICtrlSetData($hinzufuegen_input_cmsuser,"")
GUICtrlSetData($hinzufuegen_input_cmspw,"")
GUICtrlSetData($hinzufuegen_input_cmsadmin,"")
GUICtrlSetData($notizen,"")
Case $cmDel
_GUICtrlListView_DeleteItemsSelected($kundenplaner)
EndSwitch
WEnd
Func monatsrechner($datumwort)
$datum=StringSplit($datumwort,",") ;Auslesen von Datum
$tag=StringSplit($datum[2],".") ;INDEX 1 gibt tag zurück (nummerisch)
$monat=StringSplit($tag[2],Chr(32)) ;INDEX 2 gibt Monat zurück
$jahr=$monat[3]
$monat=$monat[2]
$tag=$tag[1]
If StringLen($tag)=2 Then
$tag="0"&$tag
EndIf
Switch $monat
Case "Januar"
Return($jahr&"/1/"&$tag)
Case "Februar"
Return($jahr&"/2/"&$tag)
Case "März"
Return($jahr&"/3/"&$tag)
Case "April"
Return($jahr&"/4/"&$tag)
Case "Mai"
Return($jahr&"/5/"&$tag)
Case "Juni"
Return($jahr&"/6/"&$tag)
Case "Juli"
Return($jahr&"/7/"&$tag)
Case "August"
Return($jahr&"/8/"&$tag)
Case "September"
Return($jahr&"/9/"&$tag)
Case "Oktober"
Return($jahr&"/10/"&$tag)
Case "November"
Return($jahr&"/11/"&$tag)
Case "Dezember"
Return($jahr&"/12/"&$tag)
EndSwitch
EndFunc
Func openadd($bearbeiten)
_GUICtrlButton_Show($hinzufuegen_btn_add,1)
_GUICtrlButton_Show($hinzufuegen_btn_save,0)
GUISetState(@SW_SHOW,$hinzufuegen)
GUISetState(@SW_DISABLE,$kundenplaner)
If $bearbeiten=1 Then
_GUICtrlButton_Show($hinzufuegen_btn_add,0)
_GUICtrlButton_Show($hinzufuegen_btn_save,1)
WinSetTitle("","","Kunden bearbeiten")
EndIf
EndFunc
Func closeadd()
GUISetState(@SW_HIDE,$hinzufuegen)
GUISetState(@SW_ENABLE,$kundenplaner)
EndFunc