m.fuchs hat geschrieben:Aber das ist doch gut, ohne engagierte Diskussion ist das Leben ja langweilig und der Weiterentwicklung kommt auch nicht so recht voran. Wir wollen doch hier keine Politbüro-Atmosphäre. Umgekehrt gehe ich natürlich auch davon aus, dass die Diskussion von keinem persönlich genommen wird.
Da hast Du allerdings auch wieder recht!
m.fuchs hat geschrieben:... in der Dokumentation zu dieser speziellen Funktion ist eine Warnung übertrieben. Das gehört in das Tutorial für objektorientiertes Programmieren. Andernfalls müsste man ja bei jeder Funktion die ein Objekt zurückgibt, diese Warnung einfügen...
Ja und? Soviele sind das ja nicht. Warum kann man das nicht sowohl in ein Tutorial als auch in die Funktions-Beschreibung packen? Was ist so tragisch an ein bißchen Redundanz?
m.fuchs hat geschrieben:Das wäre doch nicht zielführend. Grundlagen gehören in den Grundlagenteil. Im Dokumentationsteil für die Bibliotheken gehören die relevanten Informationen zu dem entsprechenden Code.
Entschuldige, aber das ist mir zu schematisch gedacht, allzu deutsch, prinzipienverhaftet. Informationen sollten vernünftigerweise dort liegen, wo man sie ohnehin sucht. Wer die Besonderheit der FindAllFiles-Deklaration nicht umstandslos durchdringt, der wird auch kaum auf Anhieb zu dem Ergebnis kommen, daß er gefälligst erst einmal den "
Grundlagenteil" aufzusuchen hat. So funktioniert menschliches Lernen einfach nicht. Und sind das denn keine "
relevanten Informationen zu dem entsprechenden Code"?
Aber was soll das ewige theoretisch-drüber-reden: Machen wir doch einfach mal Butter bei die Fische: Was spricht ernsthaft dagegen, in die Dokumentation von
FindAllFiles und
FindAllDirectories die folgenden zwei Absätze einzupflegen?
Code: Alles auswählen
Please note: FindAllFiles creates the resulting Stringlist and the programmer is responsible for freeing this Stringlist afterwards. Therefore you should always use an intermediate variable for taking the function result. To avoid memory leaks you should never assign the function result directly to a TStrings-property (e.g. Memo.Lines := FindAllFiles()): This would copy the Stringlists content (according to the properties write-method) while leaving the source list without a reference.
Example:
var
SL : TStringList;
begin
try
SL := FindAllFiles('.');
Memo.Lines := SL;
finally
SL.Free;
end;
end;
Mal abgesehen von meinem schauderhaften Englisch: Was spricht dagegen? (Klar müßte man an der Formulierung noch arbeiten, Verbesserungsvorschläge sind willkommen!)
Ansonsten: Aus der Namensdiskussion halte ich mich raus, da gäbe es viel zu bemängeln. Ich hatte mich erst kürzlich damit rumgeschlagen, als ich ShortString-Alternativen zu
CompareStr und
CompareText geschrieben habe: Der Unterschied zwischen diesen beiden Funktionen ist, daß die eine einen Case-sensitiven Vergleich anstellt, die andere einen insensitiven. Selbst wenn man das weiß, rätselt man, welcher Name denn nun zu welcher Funktionalität gehören könnte... Insofern stimme ich Dir einerseits ausdrücklich zu, man sollte an der Namensgebung wirklich ausgiebig feilen. Aber bei dem, was schon da ist, ist das ein Faß ohne Boden (wobei ich mich zudem frage, wie Du einen Namenswechsel vollziehen willst, ohne ebenfalls den alten Namen für deprecated zu erklären?).
Ernsthaft: Würde sich das Problem nicht weitgehend zu (fast) jedermanns Zufriedenheit in Luft auflösen, wenn man die Dokumentation einfach um einen solchen Part ergänzen würde?
Gruß Rüdiger