Eine Procedure, Funktion oder Methode sollte genau eine Aufgabe durchführen.
Ist das nicht Ansichtssache?
Letztlich ist auch eine
Unit ein Modul, und zwar eines, das meistens Code für ziemlich viel Aufgaben enthält und i.d.R. auch durchführt.
Falls mehr als eine Aufgabe durchgeführt wird, müssen die Teilaufgaben als Unterfunktionen implementiert werden.
Vermutlich meinst Du, wenn an verschiedenen Codestellen der (prinzipiell) gleiche Code im Quelltext vorhanden ist bzw. beim Programmablauf ausgeführt wird, dann
sollten Unterprogramme eingesetzt werden.
ColWidths[x] := biggestwidth + 6;
Der Grund für das +6 würde mich mal interessieren.
Ist das die Breite einer Scrollbar ?
Ich kann nur für mich antworten. Ich fummelte mir einen ähnlichen Wert zurecht, damit das Stringgrid nicht gar zu gequetscht wird: So ist wenigstens noch ein ganz klein wenig Platz zwischen Schrift und Spaltentrennern.
Der Code funktioniert übrigens wohl auch nicht im FormCreate,
sondern erst im FormActivate (Canvas ist noch nicht richtig initialisiert)
Jein. Bei Delphi 2 und 3 funktioniert er auch schon im FormCreate (ich deutete das weiter vorn an), ab Delphi 4 leider nicht (da habe ich umständlich zwei Codeblöcke, je nachdem, ob Anfang oder später). Aber nunmehr bin ich dank Deiner auf eine Fährte gestoßen, die den Code, was die Delphi-Versionen anbetrifft, evtl. universeller gestalten läßt.