E2171 由于优化,此处无法访问变量 'NyitIdo_oraS'

E2171 Variable 'NyitIdo_oraS' inaccessible here due to optimization

我有一个优化错误不知道为什么请看我的代码 该变量仅在此处使用 1 次(NyitIdo_oraS 和 NyitIdo_percS) 这些变种没问题。 ZarIdo_oraS 和 ZarIdo_percS Edit1.text := 06:00-22:00

  NyitIdo:=Edit1.Text;
  NyitOraC1 := NyitIdo[1];
  NyitOraC2 := NyitIdo[2];
  NyitPercC1 := NyitIdo[4];
  NyitPercC2 := NyitIdo[5];
  NyitIdo_oraS := StrToInt(NyitOraC1+NyitOraC2)*3600;
  NyitIdo_percS := StrToInt(NyitPercC1+NyitPercC2)*60;


  ZarOraC1 := NyitIdo[7];
  ZarOraC2 := NyitIdo[8];
  ZarPercC1 := NyitIdo[10];
  ZarPercC2 := NyitIdo[11];
  ZarIdo_oraS := StrToInt(ZarOraC1+ZarOraC2)*3600;
  ZarIdo_percS := StrToInt(ZarPercC1+ZarPercC2)*60;

变量 NyitIdo_oraS 被写入但从未被读取。优化器可以从代码中辨别出来,并可以随意删除该变量。仍然必须调用 StrToInt 以防它有副作用,但编译器没有理由创建 NyitIdo_oraS 变量,因为后续代码不引用它。 NyitIdo_percS.

也类似

通常如果您在编译器设置中禁用优化,这种优化将不再发生,您可以在调试器中检查您的变量。

如果您启用了警告,那么编译器应该会通知您您正在为一个变量赋值,但不会读取该值。您是否启用了警告?