Danke für Deine Antwort.
Ich fürchte, es geht nicht in meinem Fall.
Das liegt daran, dass das DBGrid und die ADQuery irgendwie nicht stimmig miteinander arbeiten, was veränderte Reihenfolgen der DBGrid-Felder einerseits und calculated fields in der ADQuery betrifft. Delphi ist zu doof, die Felder abzuzählen und denkt zudem, sie wären leer (calculated), wenn ich sie im Draw Event fülle. Ja, es ist schlechter Stil, im Draw Event statt im Calc-Event die Werte der Felder zu verändern. Allerdings will ich die Datumswechsel nicht zweimal rechnen, weil ich sie ja in der Grafik ohnehin brauche, um Wochen- und Monatswechsel einzuzeichnen.
Daraus folgt, dass die Breite einiger Felder Null ist, weil das Feld für Delphi leer ist.
Auch wenn ich in Draw etwas umformatiere etwa von 1,2345548886 auf 1,23
so bekommt Delphi das nicht mit und setzt eine sehr große Breite, statt eine schmale.
Das entschuldigt meine unübliche Vorgangsweise keineswegs. Denn das Draw-Ereignis sollte ja für Formatierungen gut sein, statt dass Delphi davon überfordert ist.
Ich probierte auch, im Draw-Ereignis auf die 2. RecNo zuzugreifen und die Spalten-Breite dort zu setzen. Der wer will die Breite der Überschrift? Ich möchte die Breite des Inhalts.
Warum das meine Anwendung in Zeitlupenmodus versetzte, weiß ich nicht.
Und irgendwann will ich es nicht mehr wissen, weil frustriert von dem Müll, den meine
IDE darstellt. Denn all die Fehlzugriffe auf nicht-korrekt zugreifbare Elemente bringen die
IDE derart zum Absturz, dass ich sie mehrmals pro Stunde mit dem Taskmanager abschießen muss.
Sondern ich werde die Breiten weiterhin manuell setzen.