delph5
Jr. Member
 
Offline
Beiträge: 74

|
 |
« am: 11.03.2002, 16:14:14 » |
|
097 TDBGrid: Aktive Zeile durch die HintergrundFarbe hervorheben ?
1) Situation: In einem TDBGrid ist "RowSelect" o.ä. ab-geschaltet; der ZellenFokus ist "weiße Schrift auf duBlauer Zelle". Das soll so bleiben.
Gesucht wird nach einer Lösung, wo alle GridZeilen einen leicht-grauen Hintergrund haben, außer der aktiven Zeile mit schwarzer Schrift auf weißem Hintergrund. Von links bis rechts über die gesamte Grid-Width.
[FONT COLOR="red"]2) Frage:[/FONT] Wie kann man sich ein solches Grid-Objekt herstellen ?
3) Eigene Tests: Im ersten Schritt war ich zwar erfolgreich bei der Codierung eines Grid-Ereignisses "OnRowEnter", welches diese "highLightning"-Aktion durchführen könnte. Leider fehlt mir bis jetzt das dazu passende Ereignis "OnRowExit", welches das Zeilen-"highLightning" löschen müßte.
Die zweite Hürde liegt darin, daß alle graphischen Pen- und Brush-Methoden sich nicht mit der Text-Darstellung vertragen: Der Text wird wegen fehlender Transparenz weg-gefärbt. Abhilfe sollte das Zeichnen eines hellBlauen Rahmens um die aktive Zeile herum bringen unter Auswertung der Variable "SelectedIndex" o.ä.
Hat auch nicht funktioniert. DELPHI zeichnet diesen Rahmen erstens viel zu dünn (genau 1 Pixel und nicht breiter), zweitens völlig irregulär bezüglich des vertikalen Offsets vom oberen Rand des GridGitters aus gerechnet.
Also greift man zu "TCanvas.Polygon". Es reagiert auf die Zuweisung "Pen-Width := 4". Doch es gibt wieder ein Problem beim Ausfüllen des Inneren; die DELPHI-Hilfe drückt sich da sehr wider-sprüchlich aus. Das eine Mal heißt es:
Zitat: ---------------------------- 'DELPHI-HELP' schrieb:[FONT COLOR="purple"] TCanvas.Rectangle
...Mit FrameRect oder Polygon können Sie den Umriß eines rechteckigen Bereichs zeichnen, ohne diesen zu füllen.... [/FONT]----------------------------
Das andere Mal heißt es:
Zitat: ---------------------------- 'DELPHI-HELP' schrieb:[FONT COLOR="purple"] TCanvas.Polygon
Beschreibung
Mit dieser Methode können Sie unter Verwendung des aktuellen Stifts eine in sich geschlossene, vieleckige Form zeichnen. Die Form wird mit dem aktuellen Pinsel gefüllt. [/FONT]----------------------------
Es klappt aber sowieso schon die richtige Vertikal-Positionierung nicht. Wer weiß einen Rat ? Vielleicht durch Eingriff in den QuellCode von TDBGrid oder sowas in der Richtung, oder ?
Danke für alle / "any" Tips !
.
|