Ich habe ein Listenfeld das ich per Menüauswahl mit verschiedenen Daten füllen möchte.
Im Grunde funktioniert das, jedoch wird das Listenfeld beim Wechsel der Daten nicht aktualisiert sondern durch die neuen Daten ergänzt.
Sprich, es mischt sich zusätzlich mit den Daten.
Das ganze sieht so aus:
C
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListBox.au3>
#include <GUIListview.au3>
Global $sHeader = 'Produkt-Bezeichnung|Produkt-ID|Version|Dat.Inst.|Lokation'
Global $aHeader = StringSplit($sHeader, '|')
$Form1 = GUICreate("Installierte Produkte - Windows 7 32bit", 974, 600)
Global $idListView = GUICtrlCreateListView($sHeader, 0, 0, 965, 600)
Global $hListView = GUICtrlGetHandle($idListView)
$Menue_Main = GUICtrlCreateMenu("Anzeigen")
$Menue_Main_1 = GUICtrlCreateMenuItem("Windows 7 32bit", $Menue_Main)
$Menue_Main_2 = GUICtrlCreateMenuItem("Windows 7 64bit", $Menue_Main)
_GUICtrlListView_SetColumnWidth($idListView, 0, 330)
_GUICtrlListView_SetColumnWidth($idListView, 1, 50)
_GUICtrlListView_SetColumnWidth($idListView, 2, 50)
_GUICtrlListView_SetColumnWidth($idListView, 3, 50)
_GUICtrlListView_SetColumnWidth($idListView, 4, 400)
_GUICtrlListView_RegisterSortCallBack($idListView)
GUISetState(@SW_SHOW, $Form1)
Load('produktex86.txt')
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GUICtrlListView_UnRegisterSortCallBack($idListView)
Exit
Case $idListView
_GUICtrlListView_SortItems($idListView, GUICtrlGetState($idListView))
Case $Menue_Main_1 ; Windows 7 32bit
WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 32bit")
Load('produktex86.txt')
Case $Menue_Main_2 ; Windows 7 64bit
WinSetTitle($Form1, "", "Installierte Produkte - Windows 7 64bit")
Load('produktex64.txt')
EndSwitch
WEnd
Func Load($system)
Local $hFile, $sContent, $aNewItems
$hFile = FileOpen(@ScriptDir & '\' & $system, 0)
If $hFile <> -1 Then
$sContent = FileRead($hFile)
FileClose($hFile)
$sContent = StringTrimRight($sContent, 2)
$aNewItems = StringSplit($sContent, @CRLF, 1)
If Not IsArray($aNewItems) Then Return
_GUICtrlListView_BeginUpdate($hListView)
For $i = 1 To $aNewItems[0]
GUICtrlCreateListViewItem($aNewItems[$i], $idListView)
Next
_GUICtrlListView_SortItems($idListView, 0)
_GUICtrlListView_EndUpdate($hListView)
EndIf
EndFunc
Alles anzeigen
Irgendwie müßte ich das Listenfeld vorher wohl leeren, oder gibt es eine andere Möglichkeit?