Announcement

Collapse
No announcement yet.

Listview & Zeichnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Listview & Zeichnen

    Hallo,

    ich schreibe an einer eigenen Komponente speziell eine Explorer Listview. Wenn ich dort in der Listview ein Item verändere, das heisst zum Beispiel mit Item[0].Cut das Item Transparent mache, dann wird es nicht sofort transparent. Erst nach dem ich zum Beispiel die Scrollleiste bewegt habe wird das Item Transparent. Ein sofortiges Repaint nach dem Cut hat leider nix bewirkt. Das gleiche Problem habe ich auch wenn ich zum Beispiel ein Item selektiert habe. Das entsprechende Icon wird dabei nicht mit selektiert.Hat jemand da einen Tipp für mich wie ich dieses Problem lösen kann?

    Gruß Rabu

  • #2
    Hallo Rabu,<br>
    <br>
    hast Du evtl. eine entsprechende-Routine des ListView überschrieben ohne <B>inherited</B> aufzurufen?
    <br>

    Gruss Stefa

    Comment


    • #3
      Hallo Stefan,

      der Ansatz war gut! Ich habe wirklich vergessen ein inherited aufzurufen, aber leider ist damit das Problem nicht gelöst! Vielleicht mache ich ja generell etwas verkehrt. Ich habe eine Prozedur mit der ich Items in die TList hinzufüge. Dann arbeite ich mit der Überschriebenen Funktion OwnerDataFetch um die entsprechenden Items anzuzeigen. Dort sage ich unter anderem auch Item.Cut. Leider wird die Listview danach nicht mehr neu gezeichnet. Warum das so ist würde ich auch gerne mal wissen. Erst wenn ich etwas an der ListView verändere zum Beispiel mit dem Scrollbalken bzw. wenn ich eine Spalte größer ziehe dann wird es neu gezeichnet und ich habe dieses Problem nicht meh

      Comment


      • #4
        Hallo Rabu,<br>
        <br>
        mit OwnerDataFetch habe ich bisher noch nicht gearbeitet. <br>
        Meine Idee würde noch sein, zu überprüfen dass nicht nur <b>inherited</b> aufgeruefen wrid,<br> sondern auch an der richtigen Stelle im Code.<br>
        Aber sicher hast Du auch darauf schon geachtet.<br>
        Was mir dann noch einfaellt: Ruf doch mal "invalidate" auf um das Neuzeichnen zu erzwingen.
        <br>
        Oder setze eine ShowMessage-Zeile ein, um zu sehn ob und wann der Code ausgeführt wird. <br>
        Du kannst ja auch ein Beep auslösen falls der Aufruf ständig passiert.
        <br><br>
        Gruss Stefa

        Comment

        Working...
        X