GUICtrlSetBkColor auf Zelle in ListView

  • Hallo zusammen,

    Ich möchte gerne eine Zelle in einer ListView farbig hinterlegen, finde aber keine Möglichkeit dies in AutoIt zu realisieren, da ich nicht weiß, wie ich auf eine Zelle zugreifen kann. Die meisten Funktionen liefern mir nur den Index zurück, der aber nur die Zeile angibt, nicht aber die Spalte.

    Man bräuchte eine Funktion, die mir ein zweidimensionales Array zurückliefert, auf das ich dann mit der GUICtrlSetBkColor() zugreifen könnte.

    Nachfolgend meine momentane Lösung, die aber immer nur jede Zeile einfärbt.

    Bin wie immer für jeden Vorschlag zu haben! ^^

    MFG

  • Hi
    schi... verlesen :)

    Ich dachte Zeilen einfärben, bei Spalten müsste man jede Spalte auslesen und dann einfärben.
    Nur ich glaube das es ziemlich schwer ist.


    MfG
    Der_Doc

    4 Mal editiert, zuletzt von Der_Doc (21. März 2007 um 18:58)

  • Mir fällt nur eine "unschöne" lösung ein:

    [autoit]


    #include <GUIConstants.au3>
    #include <GuiListView.au3>

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

    $sysloggui = GUICreate(" Syslog", 640, 480, -1, -1, $WS_CAPTION + $WS_SYSMENU)
    $1= GUICtrlCreateListView("Timestamp", 10, 10,175, 50, $LVS_NOSORTHEADER)
    $2= GUICtrlCreateListView("Timestamp", 174, 10, 300, 50, $LVS_NOSORTHEADER)
    GUISetState()

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

    $severitymeaning = "Undefined"
    $color = "0x000000"
    $bkcolor = "0x000000"

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

    $3 = GUICtrlCreateListViewItem("1", $1)
    $4 = GUICtrlCreateListViewItem(" 2", $2)
    GUICtrlSetColor($3, $color)
    GUICtrlSetColor($4, $color)
    GUICtrlSetBkColor($3,0x0000FF)
    GUICtrlSetBkColor($4,0xFF0000)
    _GUICtrlListViewSetColumnWidth($1 ,0,$LVSCW_AUTOSIZE_USEHEADER)
    _GUICtrlListViewSetColumnWidth($2 ,0,$LVSCW_AUTOSIZE_USEHEADER)
    sleep (2000)

    [/autoit]

    du müsstest halt die zeilen auslesen und dann alle zeilen bk color setzen
    Ich glaube es ist zur zeit anders nicht möglich in autoit Spalten Farbig zu setzen.

    3 Mal editiert, zuletzt von Tam0r (21. März 2007 um 23:41)

  • Ja, es geht darum eine nur eine Zelle einzufärben. Tam0rs Lösung ist zwar möglich, aber wirklich etwas unglücklich, wenn man öfters ein neues Item zur ListView hinzufügen möchte, wie in meinem Fall.
    Naja, gebe mich damit zufrieden, dass ich zumindest die jeweilige Zeile einfärben kann.

    Vielen Dank!