Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#18

Re: Wo bekomme ich Rect bei OnCustomDrawSubItem von TListVie

  Alt 28. Jul 2008, 12:35
Mal eines vorweg, da es wohl kleine Missverständnisse gibt und immer wieder drauf eingegangen wird - ich hab nicht vor nur ein Rechteck zu zeichnen. Das Rechteck ist nur ein einfaches Beispiel, später wird ein Diagramm gezeichnet. Nur habe ich die Routine noch nicht programmiert und deshalb behelfe ich mir mit einem kleinen Rechteck. Also jetzt keine Empfehlungen bezüglich Rechtecke und Ästhetik, das wird später anders gemacht.

Zitat von marabu:
Mit dem Code aus Beitrag #11 wollte ich meine Prosa aus Beitrag #8 untermauern. Das Besondere an diesem Code sind nicht die vorhandenen Zeilen, sondern die nicht vorhandenen.

Zitat von Popov:
... Füg mal deinem Code diese Zeilen bei ...
Genau diese Zeilen verstoßen gegen die Regel. Nochmal mit anderen Worten: Du darfst in deinen CustomDraw-Routinen nichts auf dem Canvas ausgeben, oder du musst gleich die komplette Arbeit übernehmen. In Beitrag #6 ist das auch schon angedeutet worden. Keine Ahnung, ob das in jüngeren Delphi-Versionen geändert wurde. Da nehme ich die Aussage von extrem einfach mal so hin.
So langsam bekomme ich mit was du sagen willst, allerdings kann ich die Regel so nicht in der Hilfe erkennen. Da steht zwar: "Setzen DefaultDraw auf false, wenn das Steuerelement den Text der Unterelemente nicht zeichnen soll, nachdem die Ereignisbehandlungsroutine beendet ist.", was bedeuten soll, daß bei False der Text nicht ausgegeben wird, man es also selbst machen muß, aber die klare Aussage, daß man nicht zeichnen soll, die kann ich nicht erkennen. Vielleicht sehe ich vor lauter Bäume den Wald nicht. Ich glaube dir, aber woher hast du die Info? Ich frage nur interessehalber.

Zitat:
Mein Code zeigt, wie du die ersten drei Beispiele aus deinem Beitrag #9 ohne seltsame Effekte kodieren kannst.
Dein Code ist interessant, da ich ich bei ListView noch nie Farben eingesetzt habe und das jetzt auch tun wollte, so daß du mir ein nettes Beispiel geliefert hat.

 Rectangle() ist eine Ausgabe und wenn du daran festhalten willst, dann musst du das Zeichnen der Subitems vollständig selbst übernehmen. Aber die Grafik hat vorerst die höhere Priorität. Ich experimentiere noch ein wenig. Das Problem ist, daß ich viele ListViews und mir dann viel Arbeit mache wenn ich alle die Texte selbst ausgebe, aber wenn es sein muß, dann muß es sein.
  Mit Zitat antworten Zitat