Delphi: ListView (vsReport) einzelne Spaltenüberschrift Überschrift mit benutzerdefinierten Schriftfarbe?

8

Wie kann ich in einem ListView mit vsReport ViewStyle die Schriftfarbe nur eines einzelnen Spaltentitels anpassen? Zum Beispiel (die Überschrift der zweiten Spaltenüberschrift hat eine rote Schriftfarbe):

    
user1580348 24.02.2013, 17:30
quelle

2 Antworten

13

Ich würde die NM_CUSTOMDRAW Header-Benachrichtigungscode und antworten Sie auf diese Benachrichtigung mit dem CDRF_NEWFONT -Rückgabecode in der Rendering-Phase CDDS_ITEMPREPAINT . Der folgende Code zeigt, wie die Listenansichts-Steuerelemente so erweitert werden, dass sie das Ereignis zum Festlegen der Schriftfarbe für die Kopfzeile enthalten:

%Vor%

Das gesamte Projekt können Sie hier herunterladen . Hier ist das Ergebnis des obigen Beispiels:

    
TLama 24.02.2013, 21:19
quelle
6

Sie können das native Header-Steuerelement aus der Listenansicht abrufen und dann das spezifische Element Ihrer Spalte als Eigentümer zeichnen. Sie müssen nur die Textfarbe ändern (wenn Sie das Zeichen string nicht entfernen), wenn das Kopfzeilenelement angefordert wird, um gezeichnet zu werden. Die Zeichnungsnachricht wird an das übergeordnete Element der Kopfzeile gesendet - die Listenansicht. Daher müssen Sie die Nachricht dort verarbeiten. Siehe hier für von Eigentümern erstellte Header-Steuerelemente.

Beispielcode:

%Vor%     
Sertac Akyuz 24.02.2013 18:35
quelle