$hMainGUI = GUICreate('FlexGrid') $hFlexGrid = _GUICtrlFlexGrid_Create(5, 5, 390, 390) GUISetState() _GUICtrlFlexGrid_AllowBigSelection($hFlexGrid, 1) ; 1 / 0 _GUICtrlFlexGrid_AllowUserResizing($hFlexGrid, 1) ; 1 / 0 _GUICtrlFlexGrid_SetCols($hFlexGrid, 100) ; 100 Spalten _GUICtrlFlexGrid_SetRows($hFlexGrid, 2000) ; 2000 Zeilen _GUICtrlFlexGrid_SetFixedCols($hFlexGrid, 1) ; Erste Zeile der Spalten sind hervorgehoben 1 / 0 _GUICtrlFlexGrid_SetFixedRows($hFlexGrid, 1) ; Erste Spalte der Zeilen sind hervorgehoben 1 / 0 _GUICtrlFlexGrid_SetFocusRectStyle($hFlexGrid, 1) ; 0 = Zelle markiert, 1 = dünn umrandet, 2 = fett umrandet _GUICtrlFlexGrid_SetSelectionMode($hFlexGrid, 0) ; 0 = Per Zelle, 1 = Per Zeile, 2 = Per Spalte _GUICtrlFlexGrid_SetAppearance($hFlexGrid, 0) ; 0 = normal, 1 = sunken, gar nicht = auf GUI ohne Rand ConsoleWrite("-> Created!" & @LF) $Timer = TimerInit() For $i = 0 To 1999 _GUICtrlFlexGrid_SetText($hFlexGrid, 0, $i, $i + 1) Next ConsoleWrite("!> 3000 Items in " & Round(TimerDiff($Timer)/1000, 3) & "s" & @LF) $Timer = TimerInit() For $i = 0 To 99 _GUICtrlFlexGrid_SetText($hFlexGrid, $i, 0, $i + 1) Next ConsoleWrite("!> 100 Items in " & Round(TimerDiff($Timer)/1000, 3) & "s" & @LF) $Timer = TimerInit() For $y = 1 To 1999 For $x = 1 To 99 _GUICtrlFlexGrid_SetText($hFlexGrid, $x, $y, $x * $y) Next Next ConsoleWrite("!> 200000 Items in " & Round(TimerDiff($Timer)/1000, 3) & "s" & @LF) _GUICtrlFlexGrid_SetCols($hFlexGrid, 3) _GUICtrlFlexGrid_SetRows($hFlexGrid, 3) ConsoleWrite("-> Resized!" & @LF) MsgBox(0, "FlexGrid", "Text in 1,1 is: " & _GUICtrlFlexGrid_GetText($hFlexGrid, 1, 1)) $Destroyed = False While Sleep(10) $Msg = GUIGetMsg() Switch $Msg Case -3 If $Destroyed Then Exit _GUICtrlFlexGrid_Destroy($hFlexGrid) ConsoleWrite("-> Destroyed!" & @LF) $Destroyed = True EndSwitch WEnd ; ================================================================================================= ; Internal. UDF by minx ; ================================================================================================= Func _GUICtrlFlexGrid_Create($Left, $Top, $Width, $Height) Local $aRet[2] $aRet[0] = ObjCreate('MSFlexGridLib.MSFlexGrid') $aRet[1] = GUICtrlCreateObj($aRet[0], $Left, $Top, $Width, $Height) Return $aRet EndFunc Func _GUICtrlFlexGrid_AllowBigSelection(ByRef $hCtrl, $iMode) $hCtrl[0].AllowBigSelection = $iMode EndFunc Func _GUICtrlFlexGrid_AllowUserResizing(ByRef $hCtrl, $iMode) $hCtrl[0].AllowUserResizing = $iMode EndFunc Func _GUICtrlFlexGrid_SetCols(ByRef $hCtrl, $iNum) $hCtrl[0].Cols = $iNum EndFunc Func _GUICtrlFlexGrid_SetRows(ByRef $hCtrl, $iNum) $hCtrl[0].Rows = $iNum EndFunc Func _GUICtrlFlexGrid_SetFixedRows(ByRef $hCtrl, $iMode) $hCtrl[0].FixedRows = $iMode EndFunc Func _GUICtrlFlexGrid_SetFixedCols(ByRef $hCtrl, $iMode) $hCtrl[0].FixedCols = $iMode EndFunc Func _GUICtrlFlexGrid_SetFocusRectStyle(ByRef $hCtrl, $iStyle) $hCtrl[0].FocusRect = $iStyle EndFunc Func _GUICtrlFlexGrid_SetSelectionMode(ByRef $hCtrl, $iMode) $hCtrl[0].SelectionMode = $iMode EndFunc Func _GUICtrlFlexGrid_SetAppearance(ByRef $hCtrl, $iMode) $hCtrl[0].Appearance = $iMode EndFunc Func _GUICtrlFlexGrid_SetText(ByRef $hCtrl, $iX, $iY, $sText) $hCtrl[0].Row = $iY $hCtrl[0].Col = $iX $hCtrl[0].Text = $sText EndFunc Func _GUICtrlFlexGrid_GetText(ByRef $hCtrl, $iX, $iY) Return $hCtrl[0].TextMatrix($iX, $iY) EndFunc Func _GUICtrlFlexGrid_Destroy(ByRef $hCtrl) GUICtrlDelete($hCtrl[1]) EndFunc Func _GUICtrlFlexGrid_SetPos(ByRef $hCtrl, $Left, $Top, $Width, $Height) GUICtrlSetPos($hCtrl[1], $Left, $Top, $Width, $Height) EndFunc