你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
数据输入界面设计(十三)
 

为输入成绩的每个TEdit组件定义OnChange事件,用于自动计算总评成绩,相关代码如下:

procedure TFormAchievement.EditAchievementChange(Sender: TObject);

var

  i, iRow :         Integer;

  Total, SubItem :  Double;

  EditTemp :        TEdit;

begin

 // 得到该TEdit输入对象的行号,代表是第几个学生, 在创建对象时

 // (ComboBoxAchievementType对象的OnChange事件中)动态设置

 iRow := (Sender As TEdit).Tag Div 10;

 Total := 0;  // 计算总评成绩

 for i := 0 to ScrollBox.ControlCount-1 do

  if (ScrollBox.Controls[i] Is TEdit) then begin

   // 与输入成绩同一行的TEdit组件,表示是同一个学生

   EditTemp := ScrollBox.Controls[i] as TEdit;

   if EditTemp.Tag Div 10=iRow then Begin

    // 中间的三个(即低位值为234)为学生的成绩

    if EditTemp.Tag Mod 10 In [2..4] then begin

     if EditTemp.Text='' then

      EditTemp.Text:='0';

     SubItem := StrToFloat(EditTemp.Text);

     if (SubItem>100) then begin

       ShowMessage('成绩超过了100分,请检查');

       EditTemp.SetFocus;   Exit;

     end;

     // 按成绩占比分别计算每个成绩在总评中的分项值

     case EditTemp.Tag Mod 10 of

      2 : SubItem := SubItem * StrToFloat(Edit1.Text)/100.0;

      3 : SubItem := SubItem * StrToFloat(Edit2.Text)/100.0;

      4 : SubItem := SubItem * StrToFloat(Edit3.Text)/100.0;

     end;

     Total := Total + SubItem;  // 计算总评

    end;

    if EditTemp.Tag Mod 10=AchievementCount-1 then begin

     EditTemp.Text:=Format('%.1f',[Total]); // 显示总评成绩

     break;

    end;

   end;

  end;

end;

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089