Moin,
Kurze Frage: erstelle ein ListView mit 30 Einträgen in einer For...Next Schleife. Das Problem ist, dass die GUI flackert ohne Ende. Weis einer, wie man das abstellt. Hab jetzt schon einiges probiert, krieg´s aber nicht hin.
THX
Moin,
Kurze Frage: erstelle ein ListView mit 30 Einträgen in einer For...Next Schleife. Das Problem ist, dass die GUI flackert ohne Ende. Weis einer, wie man das abstellt. Hab jetzt schon einiges probiert, krieg´s aber nicht hin.
THX
script!!!!
wie soll dir jetz einer helfen? der einzige der das könnte wäre uri geller^^
Wozu eine For Schleife?
_GUICtrlListView_AddArray
Wenns kein Array ist schreib die Variablen in ein Array und pack es dann ins Listview
Bei mir flackert es auch nicht (Habe ein Programm mit ~150 Einträgen)
uri geller
und ich mit miener Kristallkugel....
@theardsteller: hau mal n sleep rein (von miraus 20 oder 30)
Script sind etwas mehr als 10000 Sätze. Zusammen mit den benötigten Dateien, komme ich auf etwas über 173MB. Sry, aber das macht meine Leitung nicht mit. Bin aufm Land
Hab aber jetzt mal was zusammen gebastelt. Wichtig ist der Hintergrund in TabSheet1, wie ich bis jetzt festgestellt habe.
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
Global $pic_dir = "C:\Bilder\"
[/autoit] [autoit][/autoit] [autoit]$MainForm_1 = GUICreate("db", 1001, 701, (@DesktopWidth - 1001) / 2, ((@DesktopHeight - 701) / 2) - 30)
$Tab1 = GUICtrlCreateTab(0, 0, 1001, 701)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$background1 = GUICtrlCreatePic($pic_dir & "blau.jpg", 8, 30, 985, 665);, $WS_CLIPSIBLINGS)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button1 = GUICtrlCreateButton("neu erstellen", 406, 313, 181, 23)
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
GUICtrlSetState(-1,$GUI_SHOW)
$ListView1 = GUICtrlCreateListView("Nr. | Pflanzjahr | Name | Blütezeit | Standort | Boden", 8, 37, 977, 633)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 50)
GUICtrlCreateTabItem("")
listview()
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
listview()
EndSwitch
WEnd
Func listview()
$nr = 30
_GUICtrlListView_DeleteAllItems($ListView1)
For $i = 1 To $nr
GUICtrlCreateListViewItem($i & "|" & "|" & $i & "|" & $i & "|" & $i & "|" & $i, $ListView1)
GUICtrlSetBkColor(-1, 0x15ADFF)
Next
EndFunc ;==>listview
Sleep auch schon probiert, bringt nix
Hallo MrB,
ändere die func listview so ab:
[autoit]Func listview()
$nr = 30
_GUICtrlListView_DeleteAllItems($ListView1)
_GUICtrlListView_BeginUpdate($ListView1)
For $i = 1 To $nr
GUICtrlCreateListViewItem($i & "|" & "|" & $i & "|" & $i & "|" & $i & "|" & $i, $ListView1)
GUICtrlSetBkColor(-1, 0x15ADFF)
Next
_GUICtrlListView_EndUpdate($ListView1)
EndFunc ;==>listview
mfg (Auto)Bert
Macht bei mir keinen Unterschied. TabSheet1 flackert genauso wie vorher
Hab´s jetzt mal so gelöst, das ich die Gui wärend der Aktualisierung ausblenden. Dann flackersts nur einmal :-).
Falls jemand noch eine andere Idee hat, immer her damit.
Wozu eine For Schleife?
_GUICtrlListView_AddArray
Wenns kein Array ist schreib die Variablen in ein Array und pack es dann ins Listview
Bei mir flackert es auch nicht (Habe ein Programm mit ~150 Einträgen)
So ist es ...
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
Global $pic_dir = "C:\Bilder\"
[/autoit] [autoit][/autoit] [autoit]$MainForm_1 = GUICreate("db", 1001, 701, (@DesktopWidth - 1001) / 2, ((@DesktopHeight - 701) / 2) - 30)
$Tab1 = GUICtrlCreateTab(0, 0, 1001, 701)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$background1 = GUICtrlCreatePic($pic_dir & "blau.jpg", 8, 30, 985, 665);, $WS_CLIPSIBLINGS)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button1 = GUICtrlCreateButton("neu erstellen", 406, 313, 181, 23)
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
GUICtrlSetState(-1,$GUI_SHOW)
$ListView1 = GUICtrlCreateListView("Nr. | Pflanzjahr | Name | Blütezeit | Standort | Boden", 8, 37, 977, 633)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 50)
GUICtrlCreateTabItem("")
listviewNew()
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
listview()
EndSwitch
WEnd
Func listviewNew ($nr = 30)
[/autoit] [autoit][/autoit] [autoit]Local $arItems [$nr][6]
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_DeleteAllItems($ListView1)
For $i = 0 To UBound ($arItems) -1
For $ii = 0 To 5
$arItems[$i][$ii] = $i
Next
Next
_GUICtrlListView_AddArray ($ListView1, $arItems)
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit]Gruß
Greenhorn