Textausrichtung in Grid bei Benutzung von OnDrawCell
-
void __fastcall TMainMLVisard::DBGridDrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State) { DBGrid->Canvas->Pen->Color = clWindowText; DBGrid->Canvas->Brush->Color = clMoneyGreen; DBGrid->Canvas->Font->Color = clWindowText; DBGrid->Canvas->FillRect(Rect); DBGrid->Canvas->TextRect(Rect,Rect.Left,Rect.Top,"TEXT") }Soweit so, gut.
Ich male meinen Hintergrund und meinen Text je Zelle in der Farbe meiner Wahl
DBGrid->Canvas->TextRect zeichnet den Text.
Dieser ist aber linksbündig (Rect.Left).
Nun möchte ich ihn aber rechtsbündig haben (Numerische Werte in einer Tabelle).Wie mache ich das?
P.S.
@ akari
Ich hab's endlich begriffen - in meiner Mittagspause (auch wenn die BCB-Hilfe das Bsp. verweigert [Error 141]).
-
Hier ist ein Beispiel: http://www.bytesandmore.de/rad/cpp/snipp/sc02007.php
Der Link verweist irgendwie auf das falsche Beispiel, klicke auf Snippets und suche nach Grid. Das verlinkte Beispiel für TEdit ist nebenbei auch elegant gelöst.
-
@Fincki|work
Merci.
Das klappt gut.Auszug aus Bsp.
//... DBGrid->Canvas->TextRect(Rect, Rect.Right - DBGrid->Canvas->TextWidth("Text") - 3, // im Original stand ne 2 (Rect.Top+Rect.Bottom-DBGrid->Canvas->TextHeight(("Text"))/2, ("Text")); //...Für die Zukunft wärs perfekt, wenn der Subtrahent variabel wäre und ich wüßte wovon die Variable abhängig ist.
-
Ich glaube der Wert wird nur abgezogen, damit der Text nicht ganz am rechten Rand klebt.
-
Das ist korrekt. In meinem Fall stimmen es bei 3 die Zellen über DrawCell genau mit den Zellen überein, die im Standard gezeichnet wurden. Bei Zwei sind die Zellen ein wenig weiter Rechts als der Standard.
=> Irgendwie muß die Zwei ja zustande gekommen sein.
-
schau dir mal das beispiel zu TStringGrid in den FAQ an. das kannste analog auch auf dein DBGrid anwenden.
-
Sunday schrieb:
schau dir mal das beispiel zu TStringGrid in den FAQ an. das kannste analog auch auf dein DBGrid anwenden.
Ich bin zu blöd das Beispiel zu finden.
Wenn ich die Forumsuche benutze und in FAQ VCL/CLX nach TStringGrid suchen lasse, erhalte ich keine Ergebnisse.Über FAQ-Inhaltsverzeichnid schon ...
-