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做的显示目录下的文件名的程序不知道怎么写