Delphi-Quellcode:
var Frame: TFrame; // lokale Variablem werden nicht automatisch initialisiert (1), also zu 99,99999% steht das, statistisch gesehen, nicht auf NIL
SG: TAdvStringGrid;
I: integer;
begin
for I := 0 to Main.ComponentCount -1 do begin
if Components[I] is TFrame then begin
if Components[i].GetParentComponent=FrameControl.ActivePage then begin
Frame:= Components[I] as TFrame;
end;
end;
end;
if Frame=nil then begin // Wenn kein Frame gefunden wurde, trifft somit diese Prüfung womöglich nicht das gewollte Ergebnis.
...
Wie gesagt, man sollte dringend auf den Compiler hören.
if SG=nil then
ist formal richtig, aber persönlich finde ich
if Assigned(SG) then
leserlicher.
Und es Assigned ist vorallem bei Methodenzeigern schöner, da Diese intern eigentlich aus zwei Pointern bestehen.
(1) Mit kleinen Ausnahmen, welche allerdings nur automatisch verwaltete Typen betrifft, wie z.B. Strings, Interfaces und dynamische Arrays.