Hallo,
bin grad am schreiben an einem Programm für meine Arbeit. Das Programm ist dafür da Druckbilder (Dateien für Laserarbeiten) zu überwachen, wenn diese aufgerufen werden soll ein Fenster kommen, wo man eine Chargennummer eingeben soll. Momentan bin ich bei der ListBox und dazu meine Frage. Ich habe ja schon den Style für eine Mehrfachselektierung angegeben. Ich habe auch schon einen Button "Alle Entfernen", dann sind alle Druckbilder weg. Aber nun möcht ich auch den User die Funktion bereit stellen, Einträge zu markieren, die er löschen will. Z.B. Eintrag 3 anklicken -> Eintrag 6 anklicken -> Eintrag 7 anklicken -> Button "Entfernen" drücken.
Ich hoffe ihr versteh was ich meine. Kann mir jemand dabei helfen???
Code:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <ListBoxConstants.au3>
#include <WindowsConstants.au3>
Global $aButton[5], $setError
[/autoit] [autoit][/autoit] [autoit]If Not FileExists("C:\Chargennummer\Settings.ini") Then
DirCreate("C:\Chargennummer")
$FileIni = FileOpen("C:\Chargennummer\Settings.ini", 1)
FileWrite($FileIni, "[Data]" & @CRLF & "counter=0" & @CRLF & @CRLF & "[Files]")
FileClose($FileIni)
$FileTxt = FileOpen("C:\Chargennummer\Chargennummer.txt", 1)
FileWrite($FileTxt, "")
FileClose($FileTxt)
EndIf
$IniData = IniReadSection("C:\Chargennummer\Settings.ini", "Data")
$IniFiles = IniReadSection("C:\Chargennummer\Settings.ini", "Files")
Opt("TrayMenuMode",1)
TraySetToolTip("Chargennummer")
$setitem = TrayCreateItem("Einstellungen")
TrayCreateItem("")
$aboutitem = TrayCreateItem("Info")
TrayCreateItem("")
$exititem = TrayCreateItem("Beenden")
TrayItemSetState($setitem, $TRAY_DEFAULT)
TraySetClick(8)
$gui = GUICreate("Einstellungen", 260, 335, -1, -1, BitOR($WS_SYSMENU, $WS_CAPTION, $WS_MINIMIZEBOX))
GUICtrlCreateGroup("aktuelle Chargennummer", 10, 10, 240, 49)
GUICtrlCreateLabel("3001234567", 40, 31)
$aButton[0] = GUICtrlCreateButton("Ändern", 152, 25, 80, 25)
GUICtrlCreateGroup("Druckbilder", 10, 70, 240, 216)
GUICtrlCreateLabel("Druckbilder:", 25, 90)
$List = GUICtrlCreateList("", 25, 110, 110, 140, BitOR($WS_VSCROLL, $LBS_SORT, $LBS_NOTIFY, $LVS_SHOWSELALWAYS))
;~ Test
;~ GUICtrlSetData(-1, "83054850_01.vlf")
;~ GUICtrlSetData(-1, "8305480_01.vlf")
;~ GUICtrlSetData(-1, "8305450_01.vlf")
;~ GUICtrlSetData(-1, "8305850_01.vlf")
;~ GUICtrlSetData(-1, "8304850_01.vlf")
;~ GUICtrlSetData(-1, "8354850_01.vlf")
;~ GUICtrlSetData(-1, "8054850_01.vlf")
;~ GUICtrlSetData(-1, "3054850_01.vlf")
;~ GUICtrlSetData(-1, "8305485001.vlf")
;~ GUICtrlSetData(-1, "unten453454.vlf")
GUICtrlCreateLabel("aktuelles Druckbild:", 25, 260)
GUICtrlCreateLabel("83054850_02.vlf", 130, 260)
$aButton[1] = GUICtrlCreateButton("Hinzufügen", 152, 130, 80, 25)
$aButton[2] = GUICtrlCreateButton("Entfernen", 152, 165, 80, 25)
$aButton[3] = GUICtrlCreateButton("Alle Entfernen", 152, 200, 80, 25)
$aButton[4] = GUICtrlCreateButton("Schliessen", 90, 299, 80, 25, $BS_DEFPUSHBUTTON)
If $IniData[1][1] <> 0 Then
For $j = 1 To $IniData[1][1]
GUICtrlSetData($List, $IniFiles[$j][1])
Next
EndIf
GUISetState(@SW_HIDE)
While True
$traymsg = TrayGetMsg()
Switch $traymsg
Case $setitem
GUISetState(@SW_SHOW, $gui)
Case $aboutitem
MsgBox(64, "Info", 'Das Programm "Chargennummer" dient' & @LF & "dazu, in Druckbildern Chargennummern" & @LF & "ändern zu können." & @LF & @LF & "Copyright © 2009 by Mathias Obetzhauser")
Case $exititem
Exit
EndSwitch
$guimsg = GUIGetMsg()
$IniData = IniReadSection("C:\Chargennummer\Settings.ini", "Data")
$IniFiles = IniReadSection("C:\Chargennummer\Settings.ini", "Files")
Switch $guimsg
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $gui)
Case $aButton[4]
GUISetState(@SW_HIDE, $gui)
Case $aButton[1]
$setError = False
GUISetState(@SW_DISABLE, $gui)
$path = FileOpenDialog("Wählen Sie ein Druckbild aus!", "C:\Windows\", "Druckbilder (*.vlf)", 1)
$path = StringReplace($path, "C:\Daten\", "")
GUISetState(@SW_RESTORE, $gui)
If $IniData[1][1] <> 0 Then
For $i = 1 To $IniData[1][1]
If $IniFiles[$i][1] = $path Then
MsgBox(0, "Info", "Druckbild " & $IniFiles[$i][1] & " schon vorhanden!")
$setError = True
ExitLoop
Else
$setError = False
EndIf
Next
EndIf
GUISetState(@SW_ENABLE, $gui)
GUISetState(@SW_RESTORE, $gui)
If $setError = False Then
GUICtrlSetData($List, $path)
$IniData[1][1] = $IniData[1][1] + 1
IniWrite("C:\Chargennummer\Settings.ini", "Data", "counter", $IniData[1][1])
IniWrite("C:\Chargennummer\Settings.ini", "Files", "file" & $IniData[1][1], $path)
EndIf
Case $aButton[3]
If $IniData[1][1] <> 0 Then
For $i = 1 To $IniData[1][1]
IniDelete("C:\Chargennummer\Settings.ini", "Files", "file" & $i)
Next
IniWrite("C:\Chargennummer\Settings.ini", "Data", "counter", "0")
GUICtrlSetData($List, "")
EndIf
EndSwitch
WEnd