如何减少行数,我可以使用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 ...
添加一些完整性检查。