(Standard)FensterGrösse des _ArrayDisplay Fenster beeinflussen

  • Halllo zusammen,

    ich nutze das Ausgabefenster des _ArrayDisplay als Ergebnisfenster in meinem Script.....
    (das ist in diesem Falle völlig ausreichend)

    Kann ich Einfluss nehmen auf die (Standard)Grösse des Fensters ???

    Habe keinerlei Info dazu finden können

    Danke

    Chris

    Einmal editiert, zuletzt von ugt100 (9. März 2010 um 16:24)

  • Du musst einfach nur die Größe manuell erhöhen (Zeile 113).
    Hier ist schonmal die Funktion ohne Änderungen:

    Spoiler anzeigen
    [autoit]

    Func _ArrayDisplay(Const ByRef $avArray, $sTitle = "Array: ListView Display", $iItemLimit = -1, $iTranspose = 0, $sSeparator = "", $sReplace = "|", $sHeader = "")
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    ; Dimension checking
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
    If $iDimension > 2 Then Return SetError(2, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Separator handling
    ;~ If $sSeparator = "" Then $sSeparator = Chr(1)
    If $sSeparator = "" Then $sSeparator = Chr(124)

    [/autoit] [autoit][/autoit] [autoit]

    ; Check the separator to make sure it's not used literally in the array
    If _ArraySearch($avArray, $sSeparator, 0, 0, 0, 1) <> -1 Then
    For $x = 1 To 255
    If $x >= 32 And $x <= 127 Then ContinueLoop
    Local $sFind = _ArraySearch($avArray, Chr($x), 0, 0, 0, 1)
    If $sFind = -1 Then
    $sSeparator = Chr($x)
    ExitLoop
    EndIf
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Declare variables
    Local $vTmp, $iBuffer = 64
    Local $iColLimit = 250
    Local $iOnEventMode = Opt("GUIOnEventMode", 0), $sDataSeparatorChar = Opt("GUIDataSeparatorChar", $sSeparator)

    [/autoit] [autoit][/autoit] [autoit]

    ; Swap dimensions if transposing
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Set limits for dimensions
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit

    [/autoit] [autoit][/autoit] [autoit]

    ; Set header up
    If $sHeader = "" Then
    $sHeader = "Row " ; blanks added to adjust column size for big number of rows
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & "Col " & $i
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Convert array into text for listview
    Local $avArrayText[$iUBound + 1]
    For $i = 0 To $iUBound
    $avArrayText[$i] = "[" & $i & "]"
    For $j = 0 To $iSubMax
    ; Get current item
    If $iDimension = 1 Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Add to text array
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
    $avArrayText[$i] &= $sSeparator & $vTmp

    [/autoit] [autoit][/autoit] [autoit]

    ; Set max buffer size
    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp
    Next
    Next
    $iBuffer += 1

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Constants
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
    Local Const $_ARRAYCONSTANT_LVIF_PARAM = 0x4
    Local Const $_ARRAYCONSTANT_LVIF_TEXT = 0x1
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (0x1000 + 77)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (0x1000 + 76)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000
    Local Const $_ARRAYCONSTANT_tagLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"

    [/autoit] [autoit][/autoit] [autoit]

    Local $iAddMask = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
    Local $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]"), $pBuffer = DllStructGetPtr($tBuffer)
    Local $tItem = DllStructCreate($_ARRAYCONSTANT_tagLVITEM), $pItem = DllStructGetPtr($tItem)
    DllStructSetData($tItem, "Param", 0)
    DllStructSetData($tItem, "Text", $pBuffer)
    DllStructSetData($tItem, "TextMax", $iBuffer)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set interface up
    Local $iWidth = 640, $iHeight = 480
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
    Local $aiGUISize = WinGetClientSize($hGUI)
    Local $hListView = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    Local $hCopy = GUICtrlCreateButton("Copy Selected", 3, $aiGUISize[1] - 23, $aiGUISize[0] - 6, 20)
    GUICtrlSetResizing($hListView, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    GUICtrlSetResizing($hCopy, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

    [/autoit] [autoit][/autoit] [autoit]

    ; Fill listview
    Local $aItem
    For $i = 0 To $iUBound
    If GUICtrlCreateListViewItem($avArrayText[$i], $hListView) = 0 Then
    ; use GUICtrlSendMsg() to overcome AutoIt limitation
    $aItem = StringSplit($avArrayText[$i], $sSeparator)
    DllStructSetData($tBuffer, "Text", $aItem[1])

    [/autoit] [autoit][/autoit] [autoit]

    ; Add listview item
    DllStructSetData($tItem, "Item", $i)
    DllStructSetData($tItem, "SubItem", 0)
    DllStructSetData($tItem, "Mask", $iAddMask)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $pItem)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set listview subitem text
    DllStructSetData($tItem, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, "Text", $aItem[$j])
    DllStructSetData($tItem, "SubItem", $j - 1)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETITEMW, 0, $pItem)
    Next
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; adjust window width
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20

    [/autoit] [autoit][/autoit] [autoit]

    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($hGUI, "", (@DesktopWidth - $iWidth)/2, Default, $iWidth)

    [/autoit] [autoit][/autoit] [autoit]

    ; Show dialog
    GUISetState(@SW_SHOW, $hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $hCopy
    Local $sClip = ""

    [/autoit] [autoit][/autoit] [autoit]

    ; Get selected indices [ _GUICtrlListView_GetSelectedIndices($hListView, True) ]
    Local $aiCurItems[1] = [0]
    For $i = 0 To GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; Generate clipboard text
    If Not $aiCurItems[0] Then
    For $sItem In $avArrayText
    $sClip &= $sItem & @CRLF
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]] & @CRLF
    Next
    EndIf
    ClipPut($sClip)
    EndSwitch
    WEnd
    GUIDelete($hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", $iOnEventMode)
    Opt("GUIDataSeparatorChar", $sDataSeparatorChar)

    [/autoit] [autoit][/autoit] [autoit]

    Return 1
    EndFunc ;==>_ArrayDisplay

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Hall Xovox Kingdom,

    Danke für den Hinweis.

    Da ich aber noch bloody beginner bin, erschliesstes sich mir nicht wie ich die Breite (width) genau ändern kann.
    Wenn ich dies in der array.au3 mache gilt das dann nicht immer für alle Male wenn ich die array.au3 nutze ???

    Eigentlich brauch ich die Änderung nur auf Col1 bezogen in diesem speziellem Fall.....

    hier wäre es halt schön wenn man die gesamte SID sehen könnte ....


    Danke

    gruss
    Chris

  • Ich würde die array.au3 NICHT anfassen und stattdessen einfach die Funktion _arraydisplay() aus meinem ersten Post kopieren,
    und UMBENANNT (wichtig damit es keine Komplikationen mit den Namen gibt) werden.
    Der Aufruf der Funktion folgt dann mit dem "neuen" Funktionsnamen.

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Hallo ugt100,

    wie XovoxKingdom schon sagte, Finger weg von Original UDF's. Ich habe hier mal die func nach _MyArrayDisplay kopiert und dort abgeändert.

    _MyArrayDisplay (abspeichern in include unter MyArrayDisplay oder Demo anpassen):

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <array.au3>
    #include <GuiListview.au3>
    Func _MyArrayDisplay(Const ByRef $avArray, $sTitle = "Array: ListView Display", $iItemLimit = -1, $iTranspose = 0, $sSeparator = "", $sReplace = "|", $sHeader = "")
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    ; Dimension checking
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
    If $iDimension > 2 Then Return SetError(2, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Separator handling
    ;~ If $sSeparator = "" Then $sSeparator = Chr(1)
    If $sSeparator = "" Then $sSeparator = Chr(124)

    [/autoit] [autoit][/autoit] [autoit]

    ; Check the separator to make sure it's not used literally in the array
    If _ArraySearch($avArray, $sSeparator, 0, 0, 0, 1) <> -1 Then
    For $x = 1 To 255
    If $x >= 32 And $x <= 127 Then ContinueLoop
    Local $sFind = _ArraySearch($avArray, Chr($x), 0, 0, 0, 1)
    If $sFind = -1 Then
    $sSeparator = Chr($x)
    ExitLoop
    EndIf
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Declare variables
    Local $vTmp, $iBuffer = 64
    Local $iColLimit = 250
    Local $iOnEventMode = Opt("GUIOnEventMode", 0), $sDataSeparatorChar = Opt("GUIDataSeparatorChar", $sSeparator)

    [/autoit] [autoit][/autoit] [autoit]

    ; Swap dimensions if transposing
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Set limits for dimensions
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit

    [/autoit] [autoit][/autoit] [autoit]

    ; Set header up
    If $sHeader = "" Then
    $sHeader = "Row " ; blanks added to adjust column size for big number of rows
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & "Col " & $i
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Convert array into text for listview
    Local $avArrayText[$iUBound + 1]
    For $i = 0 To $iUBound
    $avArrayText[$i] = "[" & $i & "]"
    For $j = 0 To $iSubMax
    ; Get current item
    If $iDimension = 1 Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Add to text array
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
    $avArrayText[$i] &= $sSeparator & $vTmp

    [/autoit] [autoit][/autoit] [autoit]

    ; Set max buffer size
    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp
    Next
    Next
    $iBuffer += 1

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Constants
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
    Local Const $_ARRAYCONSTANT_LVIF_PARAM = 0x4
    Local Const $_ARRAYCONSTANT_LVIF_TEXT = 0x1
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (0x1000 + 77)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (0x1000 + 76)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000
    Local Const $_ARRAYCONSTANT_tagLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"

    [/autoit] [autoit][/autoit] [autoit]

    Local $iAddMask = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
    Local $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]"), $pBuffer = DllStructGetPtr($tBuffer)
    Local $tItem = DllStructCreate($_ARRAYCONSTANT_tagLVITEM), $pItem = DllStructGetPtr($tItem)
    DllStructSetData($tItem, "Param", 0)
    DllStructSetData($tItem, "Text", $pBuffer)
    DllStructSetData($tItem, "TextMax", $iBuffer)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set interface up
    Local $iWidth = 640, $iHeight = 480
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
    Local $aiGUISize = WinGetClientSize($hGUI)
    Local $hListView = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    Local $hCopy = GUICtrlCreateButton("Copy Selected", 3, $aiGUISize[1] - 23, $aiGUISize[0] - 6, 20)
    GUICtrlSetResizing($hListView, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    GUICtrlSetResizing($hCopy, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

    [/autoit] [autoit][/autoit] [autoit]

    ; Fill listview
    Local $aItem
    For $i = 0 To $iUBound
    If GUICtrlCreateListViewItem($avArrayText[$i], $hListView) = 0 Then
    ; use GUICtrlSendMsg() to overcome AutoIt limitation
    $aItem = StringSplit($avArrayText[$i], $sSeparator)
    DllStructSetData($tBuffer, "Text", $aItem[1])

    [/autoit] [autoit][/autoit] [autoit]

    ; Add listview item
    DllStructSetData($tItem, "Item", $i)
    DllStructSetData($tItem, "SubItem", 0)
    DllStructSetData($tItem, "Mask", $iAddMask)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $pItem)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set listview subitem text
    DllStructSetData($tItem, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, "Text", $aItem[$j])
    DllStructSetData($tItem, "SubItem", $j - 1)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETITEMW, 0, $pItem)
    Next
    EndIf
    Next
    $iColCount = _GUICtrlListView_GetColumnCount($hListView)
    for $i = 1 To $iColCount
    _GUICtrlListView_SetColumnWidth($hListView, $i, $LVSCW_AUTOSIZE)
    Next
    ; adjust window width
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20

    [/autoit] [autoit][/autoit] [autoit]

    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($hGUI, "", (@DesktopWidth - $iWidth)/2, Default, $iWidth)

    [/autoit] [autoit][/autoit] [autoit]

    ; Show dialog
    GUISetState(@SW_SHOW, $hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $hCopy
    Local $sClip = ""

    [/autoit] [autoit][/autoit] [autoit]

    ; Get selected indices [ _GUICtrlListView_GetSelectedIndices($hListView, True) ]
    Local $aiCurItems[1] = [0]
    For $i = 0 To GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; Generate clipboard text
    If Not $aiCurItems[0] Then
    For $sItem In $avArrayText
    $sClip &= $sItem & @CRLF
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]] & @CRLF
    Next
    EndIf
    ClipPut($sClip)
    EndSwitch
    WEnd
    GUIDelete($hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", $iOnEventMode)
    Opt("GUIDataSeparatorChar", $sDataSeparatorChar)

    [/autoit] [autoit][/autoit] [autoit]

    Return 1
    EndFunc ;==

    [/autoit]

    Demo zum Testen:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <date.au3>
    ;#include <arraySort2D_MC.au3>
    #include <MyArrayDisplay.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $array[9][4]
    For $i = 0 To 8
    $array[$i][0] = Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & Chr(Random(65, 90, 1))
    $array[$i][1] = Random(1, 31, 1) & "." & Random(1, 12, 1) & "." & Random(1960, 2000, 1); Pseudo-Datum ohne Prüfung auf Existenz z.B.31.02.2010 durchaus möglich
    Next
    _MyArrayDisplay($array)

    [/autoit]

    viel Spass damit,

    mfg (Auto)Bert

  • HI Autobert,
    danke für die UDF - funktioniert prima.

    Ich will ja nicht nerven, aber so ganz versteh ich Sache nicht.
    gehe ich Recht in der Annahme, dass

    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp

    diese Zeilen die Breite der Anzeige bestimmen ?
    In meinem Fall ist es nämlich insofern blöd, das genau ein Wert des Arrays ein extrem langer String ist, und somit das Fenster extrem gross macht.
    Kann ich nicht eine max. Breite von zh.B. 120 setzen ?


    Beispiel:
    [0]|17|
    [1]|badPwdCount|0
    [2]|cn|xyz.abc
    [3]|displayName|ABC XYZ AG
    [4]|extensionAttribute2|xyzabc
    [5]|54bc9066752f96928481000295faa35fcdd9a00c1262970240
    [6]|homeMDB|CN=SG3-DB5 (VF-MBX40),CN=VF-MBX40 SG3,CN=InformationStore,CN=VF-MBX40,CN=Servers,CN=EITO-AG,CN=Administrative Groups,CN=xyz,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=internal,DC=xyz,DC=com[7]|mail|XYZ.ABC@xyz.com
    [8]|sIDHistory|S-1-5-21-1960978786-2180923076-951318821-68580
    [17]|userPrincipalName|Henning.Kunz@Vodafone.com


    Danke und Gruss
    Christoph

  • Hallo ugt100,

    mag sein, dass dies ursprünglich die Größe bestimmt hat. Aber mit

    [autoit]


    $iColCount = _GUICtrlListView_GetColumnCount($hListView)
    for $i = 1 To $iColCount
    _GUICtrlListView_SetColumnWidth($hListView, $i, $LVSCW_AUTOSIZE)
    Next

    [/autoit]

    setze ich alle Spalten auf die Größe des größten Inhalts, so dass nachfolgendes

    [autoit]

    ; adjust window width
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20

    [/autoit][autoit][/autoit][autoit]

    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100

    [/autoit][autoit][/autoit][autoit]

    WinMove($hGUI, "", (@DesktopWidth - $iWidth)/2, Default, $iWidth)

    [/autoit]

    sich an der Listview orientiert, es wäre zwar möglich noch ein Array mit der max. Spaltenbreite zu übergeben, schau ich morgen früh danach,

    mfg (Auto)Bert

  • Hallo (Auot)Bert,

    hattest Du ggf. schon die Zeit und/oder Muse nochmals nach dem 'Problem' <max. Spaltenbreite (anzgezeigt) eines Arrays> zu schauen?


    Gruss
    Chris

  • Hallo ugt100,

    ja und hier das Ergebnis:

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <array.au3>
    #include <GuiListview.au3>
    Func _MyArrayDisplay(Const ByRef $avArray, $sTitle = "Array: ListView Display", $sCols = 0, $iItemLimit = -1, $iTranspose = 0, $sSeparator = "", $sReplace = "|", $sHeader = "")
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    $aCols = StringSplit($sCols, "|")
    ; Dimension checking
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
    If $iDimension > 2 Then Return SetError(2, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Separator handling
    ;~ If $sSeparator = "" Then $sSeparator = Chr(1)
    If $sSeparator = "" Then $sSeparator = Chr(124)

    [/autoit] [autoit][/autoit] [autoit]

    ; Check the separator to make sure it's not used literally in the array
    If _ArraySearch($avArray, $sSeparator, 0, 0, 0, 1) <> -1 Then
    For $x = 1 To 255
    If $x >= 32 And $x <= 127 Then ContinueLoop
    Local $sFind = _ArraySearch($avArray, Chr($x), 0, 0, 0, 1)
    If $sFind = -1 Then
    $sSeparator = Chr($x)
    ExitLoop
    EndIf
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Declare variables
    Local $vTmp, $iBuffer = 64
    Local $iColLimit = 250
    Local $iOnEventMode = Opt("GUIOnEventMode", 0), $sDataSeparatorChar = Opt("GUIDataSeparatorChar", $sSeparator)

    [/autoit] [autoit][/autoit] [autoit]

    ; Swap dimensions if transposing
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Set limits for dimensions
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit

    [/autoit] [autoit][/autoit] [autoit]

    ; Set header up
    If $sHeader = "" Then
    $sHeader = "Row " ; blanks added to adjust column size for big number of rows
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & "Col " & $i
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Convert array into text for listview
    Local $avArrayText[$iUBound + 1]
    For $i = 0 To $iUBound
    $avArrayText[$i] = "[" & $i & "]"
    For $j = 0 To $iSubMax
    ; Get current item
    If $iDimension = 1 Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Add to text array
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
    $avArrayText[$i] &= $sSeparator & $vTmp

    [/autoit] [autoit][/autoit] [autoit]

    ; Set max buffer size
    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp
    Next
    Next
    $iBuffer += 1

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Constants
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
    Local Const $_ARRAYCONSTANT_LVIF_PARAM = 0x4
    Local Const $_ARRAYCONSTANT_LVIF_TEXT = 0x1
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (0x1000 + 77)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (0x1000 + 76)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000
    Local Const $_ARRAYCONSTANT_tagLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"

    [/autoit] [autoit][/autoit] [autoit]

    Local $iAddMask = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
    Local $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]"), $pBuffer = DllStructGetPtr($tBuffer)
    Local $tItem = DllStructCreate($_ARRAYCONSTANT_tagLVITEM), $pItem = DllStructGetPtr($tItem)
    DllStructSetData($tItem, "Param", 0)
    DllStructSetData($tItem, "Text", $pBuffer)
    DllStructSetData($tItem, "TextMax", $iBuffer)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set interface up
    Local $iWidth = 64, $iHeight = 480
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
    Local $aiGUISize = WinGetClientSize($hGUI)
    Local $hListView = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    Local $hCopy = GUICtrlCreateButton("Copy Selected", 3, $aiGUISize[1] - 23, $aiGUISize[0] - 6, 20)
    GUICtrlSetResizing($hListView, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    GUICtrlSetResizing($hCopy, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

    [/autoit] [autoit][/autoit] [autoit]

    ; Fill listview
    Local $aItem
    For $i = 0 To $iUBound
    If GUICtrlCreateListViewItem($avArrayText[$i], $hListView) = 0 Then
    ; use GUICtrlSendMsg() to overcome AutoIt limitation
    $aItem = StringSplit($avArrayText[$i], $sSeparator)
    DllStructSetData($tBuffer, "Text", $aItem[1])

    [/autoit] [autoit][/autoit] [autoit]

    ; Add listview item
    DllStructSetData($tItem, "Item", $i)
    DllStructSetData($tItem, "SubItem", 0)
    DllStructSetData($tItem, "Mask", $iAddMask)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $pItem)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set listview subitem text
    DllStructSetData($tItem, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, "Text", $aItem[$j])
    DllStructSetData($tItem, "SubItem", $j - 1)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETITEMW, 0, $pItem)
    Next
    EndIf
    Next
    ;************************************************************************************
    $iWidth = _GUICtrlListView_GetColumnWidth($hListView,0)
    $iColCount = _GUICtrlListView_GetColumnCount($hListView)
    ;ConsoleWrite($aCols)
    For $i = 1 To $iColCount - 1
    If IsArray($aCols) Then
    _GUICtrlListView_SetColumnWidth($hListView, $i, Number($aCols[$i]))
    ;ConsoleWrite($i & ": " & $aCols[$i])
    If $aCols[$i] = -1 Then
    ;ConsoleWrite(" AutoSize")
    _GUICtrlListView_SetColumnWidth($hListView, $i, $LVSCW_AUTOSIZE)
    EndIf
    EndIf
    $iWidth += _GUICtrlListView_GetColumnWidth($hListView,$i)
    ConsoleWrite(@CRLF)
    Next
    ;************************************************************************************

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    ; adjust window width
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    #ce

    [/autoit] [autoit][/autoit] [autoit]

    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20

    [/autoit] [autoit][/autoit] [autoit]

    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($hGUI, "", (@DesktopWidth - $iWidth) / 2, Default, $iWidth)

    [/autoit] [autoit][/autoit] [autoit]

    ; Show dialog
    GUISetState(@SW_SHOW, $hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $hCopy
    Local $sClip = ""

    [/autoit] [autoit][/autoit] [autoit]

    ; Get selected indices [ _GUICtrlListView_GetSelectedIndices($hListView, True) ]
    Local $aiCurItems[1] = [0]
    For $i = 0 To GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; Generate clipboard text
    If Not $aiCurItems[0] Then
    For $sItem In $avArrayText
    $sClip &= $sItem & @CRLF
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]] & @CRLF
    Next
    EndIf
    ClipPut($sClip)
    EndSwitch
    WEnd
    GUIDelete($hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", $iOnEventMode)
    Opt("GUIDataSeparatorChar", $sDataSeparatorChar)

    [/autoit] [autoit][/autoit] [autoit]

    Return 1
    EndFunc ;==>_MyArrayDisplay

    [/autoit]


    beim Aufrufen wird als 3. Parameter ein String mit den Werten für jede Spalte angeben -1 steht für $LVSCW_AUTOSIZE. Die nachfolgenden Parameter des Originals verschieben sich dadurch um eine Stelle nach rechts.


    Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <date.au3>
    #include <MyArrayDisplay.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $array[9][2]
    For $i = 0 To 8
    $array[$i][0] = Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & Chr(Random(65, 67, 1)) & "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & Chr(Random(65, 90, 1))
    $array[$i][1] = Random(1, 31, 1) & "." & Random(1, 12, 1) & "." & Random(1960, 2000, 1); Pseudo-Datum ohne Prüfung auf Existenz z.B.31.02.2010 durchaus möglich
    Next
    _MyArrayDisplay($array,"MyArraySort Autosize","-1|-1")
    _MyArrayDisplay($array,"MyArraySort Fixed","50|30")

    [/autoit]


    mfg (Auto)Bert

  • Hallo (Auto)Bert,
    Hut ab **** 1 mit Sternchen usw **** .... einfach GUT !!!!

    Die Sache funktioniert super - genau was ich brauche.

    In einer ruhigen Minute werde ich mir das nochmal ganz genau ansehen, damit ich es auch vollständig nachvollziehen kann.
    So auf die Schnelle ist das (zumindest mir) nicht möglich.

    :thumbup::thumbup::thumbup: Nochmals VIELEN DANK :rock::rock::rock:

    Gruss
    Chris (alias ugt100)

    P.S. hast echt was gut (helfen kann ich ggf. in Sachen AD und E-Mailing)

  • Hallo (Auto)Bert,
    Hut ab **** 1 mit Sternchen usw **** .... einfach GUT !!!!

    Die Sache funktioniert super - genau was ich brauche.

    In einer ruhigen Minute werde ich mir das nochmal ganz genau ansehen, damit ich es auch vollständig nachvollziehen kann.
    So auf die Schnelle ist das (zumindest mir) nicht möglich.

    :thumbup::thumbup::thumbup: Nochmals VIELEN DANK :rock::rock::rock:

    Gruss
    Chris (alias ugt100)

    P.S. hast echt was gut (helfen kann ich ggf. in Sachen AD und E-Mailing)

    danke gern geschehen. Ist recht einfach gewesen:

    [autoit]

    ;Zeile3
    Func _MyArrayDisplay(Const ByRef $avArray, $sTitle = "Array: ListView Display", $sCols = 0, $iItemLimit = -1, $iTranspose = 0, $sSeparator = "", $sReplace = "|", $sHeader = "")

    [/autoit]

    hier änderte ich den Aufruf: $cols eingefügt.

    [autoit]

    ;Zeile 5
    $aCols = StringSplit($sCols, "|") ;String in Array umwandeln

    [/autoit][autoit]

    ;Zeile 150 ************************************************************************************
    $iWidth = _GUICtrlListView_GetColumnWidth($hListView,0) ;Gesamtbreite = Spalte 0
    $iColCount = _GUICtrlListView_GetColumnCount($hListView) ;Anzahl der Spalten ermitteln
    ;ConsoleWrite($aCols)
    For $i = 1 To $iColCount - 1
    If IsArray($aCols) Then ;nur wenn Splatenwerte angegeben
    _GUICtrlListView_SetColumnWidth($hListView, $i, Number($aCols[$i])) ;Spaltenbreite setzen
    ;ConsoleWrite($i & ": " & $aCols[$i])
    If $aCols[$i] = -1 Then ;wenn AutoSize
    ;ConsoleWrite(" AutoSize")
    _GUICtrlListView_SetColumnWidth($hListView, $i, $LVSCW_AUTOSIZE) ;auf AutoSize setzen
    EndIf
    EndIf
    $iWidth += _GUICtrlListView_GetColumnWidth($hListView,$i) ;Spaltenbreite zu Gesamtbreite dazuzählen
    ;ConsoleWrite(@CRLF)
    Next
    ;************************************************************************************

    [/autoit]

    alles andere ist die Oiginal-UDF

    mfg (Auto)Bert

  • Hallo (Auto)Bert,

    cool - die Darstellung/Erklärung macht das Ganze einfach. War gerade dabei die einzelnen Schritte nachzuvollziehen.
    Mein Problem (zur Zeit) ist (noch), dass ich zwar sozusagen den PAP schreiben kann, aber die programmatische Umsetzung zu wünschen übrig lässt ....
    Zumal ich dies zum grossen Teil nicht 'in Arbeit' machen kann.


    Da ist so eine Hilfe schon echt sensationell .... :D


    Danke nochmals
    Gruss

    Chris (alias ugt100)