Ich hatte gehofft, dass von Dejan Vu eine Code-Variante mit seinen Vorstellungen kommt, aber leider ist dies wie immer nicht so.
Dennoch möchte ich seine Fragen (obwohl ich nicht annehmen kann, dass sie ernst gemeint waren) noch beantworten.
Und warum arbeitest Du nicht mit .... Math.Max
?
Diese Frage ist ganz einfach zu beantworten:
Wenn ich mit Math.Max arbeiten würde, dann würde ich in diesem Fall nur unnötig Resourcen verschwenden.
Was macht die Funktion Max(a,b)?:
Delphi-Quellcode:
function Max(const A, B: Integer): Integer;
begin
if A > B then
Result := A
else
Result := B;
end;
Und was macht der Code von mir:
Delphi-Quellcode:
if (lTextHeigth > lMaxRowHeight) then
begin
lMaxRowHeight := lTextHeigth;
end;
Er macht das Gleiche, nur wesentlich effizienter.
1. kein unnötiger Funktionsaufruf (pro Schleifendurchgang)
2. kein unnötiges Zuweisen eines Wertes (pro Schleifendurchgang)
3. keine Notwendigkeit Math in die Uses aufzunehmen
Und warum arbeitest Du nicht mit lGrid.Canvas.TextHeight
Weil es damit nicht funktioniert.
Und wieso verzichtest Du auf den Resourcenschutzblock, um die Verwendung der Bitmap?
Man mag ja anderer Meinung sein, aber wenn es beim Erstellen des Bitmap mit Bitmap.Create() und beim Schreiben auf dessen Canvas knallt, dann hab ich ein ganz anderes Problem.
Ressourcenschutzblöcke sind sinnvoll, aber bei Weiten nicht unbedingt immer notwendig.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.