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

Removing part of condition in some cases

有没有办法根据我是否需要删除 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 是否已创建,如果没有,则跳过该部分句子。可以的话怎么跳过呢?

快速而肮脏的方式

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;