Die Skalierung des Stringgrids, konkret der Minimierung seiner Spaltenbreiten, ist nicht mein Problem; meine Codezeilen dazu funktionieren. Deine sind m.E. auch nicht substantiell anders; mir scheint sogar so, als daß meine sogar ein Quentchen effizienter sind...
Der Code von
blauweiss hat Qualität, denn er ist wiederverwendbar durch seine definierte Schnittstelle.
Die "definierte Schnittstelle" ist ganz einfach eine Procedure mit Übergabeparameter.
procedure MinimizeColWidths(aStringGrid: TStringGrid);
Dein Code ist dagegen nicht wiederverwendbar, sondern einfach in eine andere Procedure eingebettet.
Ich weiss nicht ob dir bewusst ist dass deine
procedure Form_Skalieren(Form:TForm;StringGrid:TStringGrid)
eigentlich drei Dinge tut:
1.) das Stringgrid in der Breite anpassen
2.) Höhe und Breite des Formulars (mehrfach!) ändern
3.) das Formular unsichtbar und wieder sichtbar machen
Also ist der Name "Form_Skalieren" nicht wirklich passend.
Dagegen ist die Procedure "MinimizeColWidths" fast perfekt.
Der Name beschreibt recht gut was passieren soll,
wobei ich eher von Optimieren statt von Minimieren sprechen würde.
Eine Procedure, Funktion oder Methode sollte genau eine Aufgabe durchführen.
Falls mehr als eine Aufgabe durchgeführt wird, müssen die Teilaufgaben
als Unterfunktionen implementiert werden.