Autor Beitrag
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Di 15.07.03 15:49 
Ich hab eine Funktion in der eine "unnötige" Variable vorkommt. Deshalb kriege ich von Delphi den Hinweis, daß auf diese Variable nie zugegriffen wird. Das ist auch korrekt, allerdings handelt sich hier um eine Art Dummy-Variable. Eine Delphi-Funktion liefert einige Werte zurück, von der ich eine nicht benötige (d.h. nicht auswerte). Zwar behindert mich der Hinweis nicht, aber jedes mal wenn ich runter gucke, denke ich erstmal, daß da schon wieder eine Fehler ist.

Gibt es eine Compilerdirektive mit der ich diese Funktion aus der Compilerprüfung rausnehmen kann?

_________________
Popov
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Di 15.07.03 16:17 
Popov hat folgendes geschrieben:
Ich hab eine Funktion in der eine "unnötige" Variable vorkommt.

Wenn der Compiler das sagt, dann ist das auch so. Du hast diese Variable zwar deklariert aber nicht einmal im Code verwendet.

Zitat:
Das ist auch korrekt

Und warum entfernst du sie dann nicht?

Zitat:
Eine Delphi-Funktion liefert einige Werte zurück, von der ich eine nicht benötige (d.h. nicht auswerte).

Bei var, out Parametern würde Delphi nicht diese Variable ankreiden. Und bei const und kein Modifizierer kannst du auch 0/nil/''/Null hinschreiben.

Sollte es um den Rückgabewert (Result) der Funktion gehen: Du kannst eine Funktion genau so aufrufen, als wäre es eine Prozedur.

_________________
Ist Zeit wirklich Geld?
Popov Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Di 15.07.03 20:29 
AndyB hat folgendes geschrieben:
Wenn der Compiler das sagt, dann ist das auch so.

Das war mir klar. Ich dachte, daß ich es auch so mitgeteilt habe.

AndyB hat folgendes geschrieben:
Bei var, out Parametern würde Delphi nicht diese Variable ankreiden.

Versuchs mal mit:

procedure Val(S; var V; var Code: Integer);

Zufälig benötige ich das Ergebnis V nicht, da mich in deser Prozedur nur Code interessiert.

_________________
Popov
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Di 15.07.03 21:17 
Du meintest den Hinweis 'Auf "%s" zugewiesener Wert wird niemals benutzt.'

Da gibt es zum einen SysUtils.TryStrToInt() und zum anderen könntest du das so machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
{$HINTS OFF}
var
  v: Integer;
  err: Integer;
begin
  Val('100', v, err);
  if err <> 0 then
    ShowMessage('Error');
end;
{$HINTS ON}

Der Nachteil dabei ist, dass alle Hinweise abgeschaltet sind.

_________________
Ist Zeit wirklich Geld?
Popov Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Mi 16.07.03 01:11 
Ja es klappt. Danke. Aber da wird doch der Hund in der Pfanne verückt, ich hab es auch mit {$HINTS OFF} versucht und es hat nicht geklappt. Ich weiß aber inzwischen wo der Fehler lag. Ich hab den Schlüssel in den Code eingesetzt. Anscheinend hab ich übersehen, daß so der Deklarationsteil nicht berücksichtigt wird.

_________________
Popov
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 16.07.03 08:23 
Hallo!

Ich habe das Probelm zwar noch nie mit Variablenparametern gehabt (weil ich die bislang auch immer anschließend ausgewertet habe) allerdings hatte ich das Problem mit den Ergbenisvariablen bei Funktionsaufrufen. Zur Info: Ich habe den Compiler so eingestellt das ich Funktionergebnisse auswerten MUSS. Da es aber hin und wieder doch Fälle gibt wo ich das Ergbnis nicht benötige (zum Beispiel ein Aufruf von TList.Add) würde es bei mir auch zu dieser Warnung/Hinweis von Delphi kommen da ich ja die Variable mit dem Funktionsergenis nicht wirklich benutzt/auswerten würden.

Damit ich aber nicht ständig diese Meldung bekomme habe ich mir eine Unit erstellt in der ich die folgenden globalen Variablen definiert habe:
ausblenden Delphi-Quelltext
1:
2:
3:
Var
  IgnoreInteger: Integer;
  IgnorePointer: Pointer;

Diese Variablen benutze ich dann immer wenn ich das Funktionsergebnis nicht benötige.

Gruß
Tino