Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

AW: StringGrid in einem Frame suchen

  Alt 28. Nov 2014, 10:34
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat