在某些情况下删除部分条件

时间:2017-12-06 12:30:23

标签: delphi if-statement delphi-2006

根据我是否需要,有没有办法删除IF语句中的部分条件。下一个代码是示例,因为在我的代码中,我的语言中有许多用户定义的函数和过程:

IF A THEN
Q := TQuery.Create(Application);
IF B AND C AND D AND E AND Q.FieldByName('Example').AsInteger = 1 then
BEGIN
...
END

所以,让我们在创建TQuery之后说我已经将一些数据导入其中(我在这里没有写出这部分代码)。如果Q没有创建(因为条件A不满意),或者我必须要翻转,是否有办法在第二个IF语句中删除Q部分只有没有IF部分的整个Q声明?

我正在考虑使用类似CASE的内容来检查Q是否已创建,如果不是,则跳过该部分句子。如果有可能,我该如何跳过它?

1 个答案:

答案 0 :(得分:4)

快速而肮脏的方式

IF B AND C AND D AND E AND (NOT A OR Q.FieldByName('Example').AsInteger = 1) then

请注意,尽量保持if条件更简单。

EvaluationRequested := A AND C ...
QueryNeedsAval := NOT A OR ... 
if EvaluationRequested AND QueryNeedsAval then 
begin
   ...
end;