我想取的listview中的选中的I行A列的内容来索引,但在SQL语句中总是通不过,在最后时编译即有问题了,代码如下,不知为何
procedure Tmainpagefrm.N22Click(Sender: TObject);
var
i:integer;
begin
usemesfrm.ShowModal;
with mindatamodule.adoqrycustlist do
begin
listview1.ItemIndex:=i;
close;
sql.Clear;
sql.Add('select * from tcustomer where cust_no='+quotedstr(listview1.Items[i].SubItems.Strings[2]);
open;
first;
usemesfrm.Edit1.Text:=fieldbyname('cust_no').AsString;
....
end; end;
end.
procedure Tmainpagefrm.N22Click(Sender: TObject);
var
i:integer;
begin
usemesfrm.ShowModal;
with mindatamodule.adoqrycustlist do
begin
listview1.ItemIndex:=i;
close;
sql.Clear;
sql.Add('select * from tcustomer where cust_no='+quotedstr(listview1.Items[i].SubItems.Strings[2]);
open;
first;
usemesfrm.Edit1.Text:=fieldbyname('cust_no').AsString;
....
end; end;
end.
procedure Tmainpagefrm.N22Click(Sender: TObject);
begin
showmessage(listview1.items[listview1.selected.index].subitems.stings[1])
end;
end;
是可以的,并可以得到数据,但是只要加入with mindatamodule.adoqrycustlist do 后,就没有办法取到 [listview1.selected.index]中的index的属性了,所以也就编译不下去
procedure Tmainpagefrm.N22Click(Sender: TObject);
var
selstr:string;
begin
listview1.Items[listview1.Selected.Index].SubItems.Strings[0]:=selstr;
usemesfrm.ShowModal;
begin
with mindatamodule.adoqrycustlist do
begin
close;
sql.Clear;
sql.Add('select cust_no,cust_name,cust_bp,bp_type,reg_date,unreg_date,cust_psw,mobile,email,zjid,ktsvr from tcustomer where cust_no='+quotedstr(selstr));
open;
usemesfrm.Edit1.Text:=fieldbyname('cust_no').AsString;
usemesfrm.Edit2.Text:=fieldbyname('cust_name').AsString;
usemesfrm.Edit3.Text:=fieldbyname('cust_bp').AsString;
if fieldbyname('bp_type').AsString='w' then
checkbox1.Checked:=true
else
checkbox2.Checked:=true;
usemesfrm.MaskEdit1.Text:=fieldbyname('reg_date').AsString;
usemesfrm.MaskEdit2.Text:=fieldbyname('unreg_date').AsString;
usemesfrm.Edit7.Text:=fieldbyname('cust_psw').AsString;
usemesfrm.Edit8.Text:=fieldbyname('cust_psw').AsString;
usemesfrm.Edit9.Text:=fieldbyname('mobile').AsString;
usemesfrm.Edit10.Text:=fieldbyname('email').AsString;
usemesfrm.Edit11.Text:=fieldbyname('zjid').AsString;
usemesfrm.ComboBox1.Text:=fieldbyname('ktsvr').AsString;
end;
end;
end;