Frage

In Delphi können Sie Compiler-Direktiven verwenden, um bestimmte Warnungen zu deaktivieren, wie

{$WARN USE_BEFORE_DEF OFF}

Aber wenn ich versuchte, dass mit einem bestimmten Hinweis zu tun, deren underscore_style_name ich stieg aus der Hilfe-Datei, die der Compiler nicht weiß, was {$ TIPP} ist. So ist es eine Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Keine spezifischen Hinweise, aber Sie können sie alle deaktivieren.

{$HINTS OFF}
procedure MyProc;
var
  i : integer;
begin
  DoSomething;
end;
{$HINTS ON}

Andere Tipps

Little off-topic: Sie sollten über Compiler Hinweise und Warnungen kümmern. Sie sind nicht nur zum Spaß. Compiler ist nur zu sagen „Programm kann anders arbeiten, dass Sie denken, weil Ihr Quellcode ist nicht richtig“.

Um es wirklich sicher zu spielen, möchte man so etwas tun:

function TopazGetText(const _s: string): string;
begin
{$IFOPT <something>+}
{$DEFINE HINTS_WERE_ON}
{$HINTS OFF}
{$ELSE}
{$UNDEF HINTS_WERE_ON}
{$ENDIF}
  Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
{$IFDEF HINTS_WERE_ON}
{$HINTS ON}
{$ENDIF}
end;

Leider scheint es zu prüfen, ob Hinweise ausgeschaltet sind oder nicht keine Compiler-Direktive zu sein, so können Sie dies nicht tun. (H + ist nicht für Hinweise, aber für lange Zeichenketten). Auch TIPPS OFF / ON nicht innerhalb einer Funktion / Prozedur funktioniert.

So können Sie am Ende Hinweise aus und bedingungslos für die ganze Funktion drehen:

{$HINTS OFF}
function TopazGetText(const _s: string): string;
begin
  Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
end;
{$HINTS ON}

(Der Compiler verwendet, mir zu sagen, dass es nicht dzDGetText die etwas ist, Inline konnte ich in diesem Fall ist es egal, und ich will nicht den Hinweis sehen, weil diese mich stoppen würde (und meine Mitarbeiter) zu kümmern über wichtige Hinweise.)

Best ich denken kann, ist das Thema des Hinweises mit einer bedingten zu umgeben definieren und verwenden die gleichen bedingten um den Code zu definieren, die nicht benötigt werden oder kann, wie unten dargestellt:

Wenn Sie diese:

procedure MyProc;
var
  i : integer;
begin
  DoSomething;
  //SomethingWith_i_IsCommentedOut;
end;

Sie erhalten: Hinweis: Variable "i" deklariert, aber nie verwendet

Also versuchen Sie stattdessen:

procedure MyProc;
  {$IFDEF USE_THE_I_PROCEDURE}
var
  i : integer;
  {$ENDIF}
begin
  DoSomething;
  {$IFDEF USE_THE_I_PROCEDURE}
  SomethingWith_i_IsCommentedOut;
  {$ENDIF}
end;

Nun können Sie die definieren ein- oder ausschalten, und Sie sollten nie einen Hinweis bekommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top