Ja, das dacht ich auch. Ein kurzer Blick hat mich eines Besseren belehrt. Ich kann im Hilfetext von FindComponent keine Erläuterung des Rückgabewerts, wenn die Komponten nicht gefunden wird, nicht entdecken.
Mir war so, als hätte ich das mal irgendwann vor Jahren da gelesen. Aber das ist genau so ein Mist, weshalb ich die Hilfe in Delphi so scharf kritisiere. So etwas
muss da stehen! Mögliche Rückgabewerte sind geradezu das Minimum, was eine Funktionsbeschreibung machen muss. Und dann auch gern kleine Best-Practice Beispiele der Art
Delphi-Quellcode:
var
edit: TEdit;
begin
edit := FindComponent('Edit1') as TEdit;
if Assigned(edit) then
begin
// your code here
end;
end;
(Wobei ich jetzt gerade nicht sicher bin, ob "as" nicht auch schon implizit auf nil prüft, bzw. es als ungültige TEdit Instanz ablehnt. Steht bestimmt in der Hilfe dazu
) Und dann auch die Gefahren abgrenzen, die z.B. bei einem harten Cast entstehen können. Mag für viele offensichtlich sein, aber den meisten, die die Hilfe oft beanspruchen müssen gerade vielleicht nicht.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)