Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Assert: <>NIL-Prüfung mit Bool var. (https://www.delphipraxis.net/89202-assert-nil-pruefung-mit-bool-var.html)

hoika 27. Mär 2007 11:15


Assert: <>NIL-Prüfung mit Bool var.
 
Hallo #,

besser habe ich den Ttel nicht hinbekommen ;)
Folgendes Problem.
Ich habe eine Methode mit zwei Parameter

Delphi-Quellcode:
procedure Test(const bUseProjectFilter: Boolean;
  theProjectFilter: TList);
ist bUseProjectFilter=True, muss theProjectFilter<>NIL sein.

zur Zeit schreibe ich das so

Delphi-Quellcode:
if bUseProjectFilter then
begin
  Assert(theProjectFilter<>NIL);
end;
was mich dabi stört, das das if.

ein

Assert((bUseProjectFilter) and (theProjectFilter<>NIL));

klappt natürlich nicht.

Wie kann man das Assert vereinfachen ?

Ich weiss, dass der Debugger den Code eh rauswirft,
wenn ohne Asserts compiliert wird (leeres if),
aber es geht mir ums Prinzip.


Heiko

SirThornberry 27. Mär 2007 11:28

Re: Assert: <>NIL-Prüfung mit Bool var.
 
du solltest schon wissen was "and", "or", "xor", "not" etc. machen. Wenn wir dir jetzt die Lösung posten bist du am Ende auch nicht viel Schlauer. Du musst wissen was du wissen willst. Und wenn du mit "oder" testen willst musst du "or" verwenden. Wenn du mit "und" testen willst wäre "and" das richtige.

IngoD7 27. Mär 2007 12:42

Re: Assert: <>NIL-Prüfung mit Bool var.
 
Zitat:

Zitat von hoika
ein

Assert((bUseProjectFilter) and (theProjectFilter<>NIL));

klappt natürlich nicht.

Was klappt daran nicht?

shmia 27. Mär 2007 13:12

Re: Assert: <>NIL-Prüfung mit Bool var.
 
So sieht die korrekte Assert-Anweisung in deinem Fall aus:
Delphi-Quellcode:
Assert(bUseProjectFilter and Assigned(theProjectFilter));
Die Compileranweisung "Complete Boolean Eval" darf nicht gesetzt sein.

[edit]Das stimmt so natürlich nicht; bitte ignorieren[/edit]

Flocke 27. Mär 2007 13:19

Re: Assert: <>NIL-Prüfung mit Bool var.
 
Ich würd' sagen
Delphi-Quellcode:
Assert((not bUseProjectFilter) or (theProjectFilter <> nil));


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz