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

 strSQL:=strSQL+'(SELECT StudentID FROM Student Where ClassID='''+TreeList[SelectNode.Parent.AbsoluteIndex]+''')';

  strSQL:=strSQL+' Order By StudentID';

  ADODataSetAchievement.CommandText := strSQL;

  ADODataSetAchievement.Open;

  // 删除不存在的学生成绩(前面输入不及格但这次已及格的学生)

  while Not ADODataSetAchievement.Eof do begin

   if Not ADODataSetStudent.Locate('StudentID',ADODataSetAchievement.FieldValues['StudentID'], []) then

    ADODataSetAchievement.Delete

   else

    ADODataSetAchievement.Next;

  end;

  ScrollBox.Hide; // 因动态创建大量的TEdit对象,避免界面有明显的晃动

  ADODataSetStudent.First;  // 根据每个学生的实际情况动态创建TEdit对象

  while Not ADODataSetStudent.Eof do begin

   iPos := 1; // 动态创建TEdit输入对象,每个学生AchievementCount

   for j := 0 to AchievementCount-1 do begin

    EditAchievement[iCount][j] := TEdit.Create(Self); // 创建

    EditAchievement[iCount][j].Parent := ScrollBox;  

// 创建在ScrollBox对象中

    // HeaderControl中各节宽度分别设置对应TEdit输入对象的宽度

    EditAchievement[iCount][j].Width := HeaderControl.Sections.Items[j].Width;

    EditAchievement[iCount][j].Left := iPos;

    //计算下一个TEdit输入对象的左边位置

    iPos := iPos + EditAchievement[iCount][j].Width;

    EditAchievement[iCount][j].Top := HeaderControl.Height+2+iCount*(Edit1.Height+2);

    // 设置对象的行列标记,一个学生一行按顺序排列(个位表示是同一行的第几个TEdit输入对象)

    EditAchievement[iCount][j].Tag := iCount*10 + j;

    if (j In [2..4]) then // 动态设置同行求总分的OnChange事件

      EditAchievement[iCount][j].OnChange := EditAchievementChange;

    // 中间的三个TEdit对象可以输入

    EditAchievement[iCount][j].Enabled := (j In [2..4]);

   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