gpt4 book ai didi

delphi - 减少线路,用例?

转载 作者:行者123 更新时间:2023-12-02 00:11:59 25 4
gpt4 key购买 nike

如何减少行数,我可以使用case?我感觉这段代码太大了,没有办法改进吗?

      if valmes.Text = '01' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '0';
if valmes.Text = '02' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '1';
if valmes.Text = '03' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '2';
if valmes.Text = '04' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '3';
if valmes.Text = '05' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '4';
if valmes.Text = '06' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '5';
if valmes.Text = '07' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '6';
if valmes.Text = '08' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '7';
if valmes.Text = '09' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '8';
if valmes.Text = '10' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '9';
if valmes.Text = '11' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '10';
if valmes.Text = '12' then
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '11';

例如:

case AnsiIndexStr(valmes.text, ['11', '12']) of
0: WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '10';

最佳答案

改进代码的简单方法:

var
ix: Integer;
...
ix := StrToInt(valmes.Text);
WebTesta.OleObject.Document.all.Item('expmonth', 0).value := IntToStr(ix-1);

您可以使用 if TryStrToInt(valmes.Text,ix) then ... 添加一些健全性检查。

关于delphi - 减少线路,用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30918238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com