Thema: Delphi DBGrid Spaltenbreite

Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#1

DBGrid Spaltenbreite

  Alt 26. Mai 2008, 15:34
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos
Ahoi!

Ich bekomme es gerade irgendwie nicht hin, die Spaltenbreiten in meinem DBGrid so zu ändern, wie ich es möchte. Ich möchte für einigen Spalten die Breite abhängig vom Titeltext machen, was an und für sich ja kein Problem ist. Allerdings wird das Grid zyklisch aktualisiert, und flackert durch das Ändern der Breiten ausgesprochen unschön.
Das Problem ist, dass ich Disable/EnableControls des Datasets zwar einsetzen kann während ich einen neue Query öffne, aber die zu ändernden Spalten gibt es in dem Grid natürlich zu dem Zeitpunkt nach dem Query.Open noch nicht, da das Grid ja disabled ist.
Sobald EnableControls aufgerufen wird, zeichnet sich das Grid sofort - und erst danach kann ich die Spaltenbreiten der nun vorhandenen Columns ändern. Das löst aber wieder für jede Spalte erneut ein Neuzeichnen aus, wodurch dann letztlich 4x gezeichnet wird, ich aber nur ein Mal ganz zum schluss will.

Im OnDrawColumnCell kann ich das auch nicht unterbringen, da auch dort ein Ändern der Breite ein Neuzeichnen auslöst, wodurch das ganze zu einer hübschen Endlosschleife wird.

Ein Begin/EndUpdate kennt das DBGrid wohl leider nicht . Weiss jemand wie ich diese Repaint-Odyssee beenden kann?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat