当前位置:编程学习 > Delphi >>

delphi 7 求解析

var sVal, sID, sName: String; begin lbMatched.Clear; sVal := Trim(edtSearchVal.Text); if sVal = '' then begin lbMatched.Hide; Exit; end; ADOTable1.DisableControls; try ADOTable1.First; while not ADOTable1.Eof do begin sID := ADOTable1.FieldByName('编号').AsString; sName := ADOTable1.FieldByName('姓名').AsString; if (Pos(sVal, sID) > 0) or (Pos(sVal, sName) > 0) then lbMatched.AddItem(sID + ' ' + sName, TObject(ADOTable1.FieldByName('编号').AsInteger)); ADOTable1.Next; end; finally ADOTable1.EnableControls; end; lbMatched.Visible := lbMatched.Count > 0; end;
答案:var
  sVal, sID, sName: String;//定义了三个字符串类型变量
begin
  lbMatched.Clear;//可能是一个列表框或者combobox组件;清除该组件内的数据
  sVal := Trim(edtSearchVal.Text);//edtSearchVa是一个EDIT组件;清除该组件内数据的首尾空格后,赋值给sVal 
  if sVal = '' then//如果变量sVal 为空
  begin   //开始执行以下代码
    lbMatched.Hide;//隐藏 lbMatched
    Exit;//退出该过程,不执行后面的代码
  end;
  ADOTable1.DisableControls;//这句可要可不要;
  try;//这句可要可不要;

    ADOTable1.First;//移动数据集指针到第一条记录
    while not ADOTable1.Eof do //只要数据集指针没有到达最后一条记录就循环执行begin end之间的代码
    begin
      sID := ADOTable1.FieldByName('编号').AsString;//将数据集中字段为编号的值赋值给SID变量.
      sName := ADOTable1.FieldByName('姓名').AsString;;//将数据集中字段为姓名的值赋值给sName变量.

      if (Pos(sVal, sID) > 0) or (Pos(sVal, sName) > 0) then//变量值比较
//如果sVal中有SID或者sVal中有sName,就执行下面的语句
        lbMatched.AddItem(sID + ' ' + sName, TObject(ADOTable1.FieldByName('编号').AsInteger));//把编号和姓名增加到列表组件的项目中.
      ADOTable1.Next;//数据集指针下移一条记录
    end;
  finally;//这句可要可不要;处理异常的
    ADOTable1.EnableControls;//;//这句可要可不要;

  end;
  lbMatched.Visible := lbMatched.Count > 0;//如果列表组件没有数据,就不显示它
end;
其他:这段代码的意思是:将ADOTable1中“编号”或“姓名”中含有edtSearchVal.Text的字符的记录用sID + ' ' + sName, TObject(ADOTable1.FieldByName('编号').AsInteger的方式写入ibMatched列表中。 

上一个:各位哥哥姐姐弟弟妹妹们有谁知道比较好的delphi 自学网站或是书籍,推荐或是发送下!! S Q
下一个:我想用DELPHI做的显示目录下的文件名的程序不知道怎么写

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,