Zitat von
DeddyH:
Entweder definieren wir "global" unterschiedlich, oder Du irrst.
Delphi-Quellcode:
{$WARNINGS OFF}
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
for i := 1 to 5 do;
ShowMessage(inttostr(i)); //hier kommt keine Warnung
end;
{$WARNINGS ON}
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
for i := 1 to 5 do;
ShowMessage(inttostr(i)); //hier kommt eine Warnung
end;
Das sagt nichts aus.
Mit lokal ist gemeint, dass pro
Unit die Warnungen ein-/ausgeschaltet werden können. D.h. sobald "end." erreicht wurde, werden Warnungen wieder auf standard gesetzt. z.B. {$WARN XY OFF/ON} hat diese Eigenschaft. Sie ist nur in der
Unit gültig, in der sie definiert wurde und auch nur ab der Zeile.
Wenn du jedoch {$WARNINGS OFF} irgendwo in deinen 10000000 Units definierst, dann wird sobald der Compiler diese Stelle erreich, nie wieder eine Warnungen danach ausgegeben. Und schon hat man den Eindruck, dass es keine Warnungen gibt. Ist das nicht gefährlich? Ich sage: JA.
Außerdem hat dein Quelltext ein Problem. Wenn irgendwer Warnungen ausschaltet, aus welchem Grund auch immer, dann kommen nach der Zeile trotzdem Warnungen.