TStringGrid - wie Veränderung der Spaltenbreite mitbekommen?
-
Hallo,
ich suche im TStringGrid eine Möglichkeit zum Erhalt einer Nachricht,
wenn der User mittels linker Maustaste die Spaltenbreite verändert hat.Hintergrund:
Wegen OnDrawCell müsste ich nach Loslassen der Maustaste (also User hat
die neue Breite eingestellt) einen Repaint auslösen, um grafische Darstellungs-
fehler zu beseitigen. Leider finde ich absolut keine Message... ?Hat jemand eine Idee oder Lösungsansatz?
MfG Stefan
-
Geht da nicht OnMouseUp?
-
Hallo Braunstein
allerdings kommt diese ja auf das gesamte Grid bezogen;
ich ermittele noch die Koordinaten, die Zeilenhöhe der
Titelleiste usw. dann geht es. Wäre halt viel einfacher,
wenn man es wirklich auf das eigentliche Ereigniss bekäme
(zumal MouseUp ja auch nicht meldet, ob eine Spalte in der
Breite sich verändert hat). Mit MouseDown, MouseMove und
MouseUp geht es, ist aber doch recht aufwendig...Dachte daher, daß es vielleicht einen einfacheren Weg gibt.
Danke und Gruss
Stefan
-
Auf Anhieb sehe ich keinen. Wenn man sowas öfters braucht, würde es sich wahrscheinlich lohnen eine eigene StringGrid-Variante abzuleiten, die dafür einen Event hat.
-
Als Alternative könntest du auch einen Timer erzeugen, der regelmäßig die Veränderung einzelnen Spaltenbreiten überprüft, d.h. die Werte speichert und vergleicht.
-
Stefan7124 schrieb:
Wegen OnDrawCell müsste ich nach Loslassen der Maustaste (also User hat
die neue Breite eingestellt) einen Repaint auslösenOnDrawCell selbst sollte doch den Zweck erfüllen. Schliesslich wird es immer dann ausgelöst, wenn die Zelle (neu) zu zeichnen ist, so auch nach Änderung der Spaltenbreite!?
-
Th69 schrieb:
Als Alternative könntest du auch einen Timer erzeugen, der regelmäßig die Veränderung einzelnen Spaltenbreiten überprüft, d.h. die Werte speichert und vergleicht.