listview没有现成的 到是有一个treeview 的可供参考 procedure TForm1.FormShow(Sender: TObject); var TreeNodeProvince,TreeNodeCity : TTreeNode; NodeDataRecPtr : PNodeDataRec; RegAdmiCode,Temp : String; begin TreeView1.Items.Clear; //TreeNodeProvince := nil; //TreeNodeCity := nil; with Query1 do begin Close; SQL.Clear; SQL.Text := 'select AdmipartitionNo,AdmipartitionName from table order by ADMIPARTITIONNO asc'; try Open; except Close; Exit; end; //----^ if not (bof and eof) then begin First; while Not eof do begin Temp := fieldbyname('AdmipartitionNo').AsString; if Copy(fieldbyname('AdmipartitionNo').AsString,3,4) = '0000' then begin New(NodeDataRecPtr); NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString; NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString; TreeNodeProvince := TreeView1.Items.AddObject(nil,FieldByName('ADMIPARTITIONNAME').AsString + '' + FieldByName('ADMIPARTITIONNO').AsString,NodeDataRecPtr); // TreeNodeProvince := TreeView1.Items.Add(nil,FieldByName('ADMIPARTITIONNAME').AsString // ); end else if Copy(FieldByName('ADMIPARTITIONNO').AsString,5,2) = '00' then begin New(NodeDataRecPtr); NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString; NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString; TreeNodeCity := TreeView1.Items.AddChildObject(TreeNodeProvince,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr); end else begin New(NodeDataRecPtr); NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString; NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNo').AsString; TreeView1.Items.AddChildObject(TreeNodeCity,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr); end; Next; end; end; end; TreeView1.SetFocus; TreeView1Click(Self); end;
我用的是sql server 2000 不知道treeview和listview的用法是不是很相似?我只是想把那些表的有关信息拿出来,比如directorys,filename,filetime,content等等。
procedure TForm1.FormShow(Sender: TObject);
var
TreeNodeProvince,TreeNodeCity : TTreeNode;
NodeDataRecPtr : PNodeDataRec;
RegAdmiCode,Temp : String;
begin
TreeView1.Items.Clear;
//TreeNodeProvince := nil;
//TreeNodeCity := nil;
with Query1 do
begin
Close;
SQL.Clear;
SQL.Text := 'select AdmipartitionNo,AdmipartitionName from table
order by ADMIPARTITIONNO asc';
try
Open;
except
Close;
Exit;
end;
//----^ if not (bof and eof) then
begin
First;
while Not eof do
begin
Temp := fieldbyname('AdmipartitionNo').AsString; if Copy(fieldbyname('AdmipartitionNo').AsString,3,4) = '0000' then
begin
New(NodeDataRecPtr);
NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString;
TreeNodeProvince := TreeView1.Items.AddObject(nil,FieldByName('ADMIPARTITIONNAME').AsString +
'' + FieldByName('ADMIPARTITIONNO').AsString,NodeDataRecPtr); // TreeNodeProvince := TreeView1.Items.Add(nil,FieldByName('ADMIPARTITIONNAME').AsString
// );
end
else
if Copy(FieldByName('ADMIPARTITIONNO').AsString,5,2) = '00' then
begin
New(NodeDataRecPtr);
NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString;
TreeNodeCity := TreeView1.Items.AddChildObject(TreeNodeProvince,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr);
end
else
begin
New(NodeDataRecPtr);
NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNo').AsString;
TreeView1.Items.AddChildObject(TreeNodeCity,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr); end;
Next;
end;
end;
end;
TreeView1.SetFocus;
TreeView1Click(Self);
end;