Hallo,
in meiner TFilterGrid-Kompenente verwende ich an verschiedenen Stellen folgende Code-Konstruktion:
z.B.:
Delphi-Quellcode:
var
ci: TColInfo;
begin
....
ci := ColInfo[c];
if (ci <> nil) and Assigned(ci.CompToCellProc) then
.....
Bei mir ist die Syntaxoptionen "Boolesche Ausdrücke vollständig" immer ausgeschalten und der Code funktioniert.
Ein Nutzer meiner Komponente hat diese Option aktiviert und es kommt zwangsläufig zu einer Zugriffverletzung, wenn ci = nil ist.
Ich kann den Code ändern in:
Delphi-Quellcode:
....
if (ci <> nil) then
if Assigned(ci.CompToCellProc) then
....
was mir aber nicht sehr gefällt, da er dadurch unübersichtlicher wird.
Ich würde lieber die Compilerschalter {$B+} bzw. {$B-} verwenden.
An welcher Stelle im Quelltext der Komponenete muss ich diese Compilerschalter setzten, damit sie nur für diese gelten?
Wie kann ich erkennen welcher Schalter gesetzt ist?
Wie würdet ihr das Problem lösen?
Grüße Klaus