- 註冊時間
 - 2006-3-13 
 - 最後登錄
 - 2025-7-23 
 - 在線時間
 - 675 小時 
 - 閱讀權限
 - 200 
 - 積分
 - 417 
 - 帖子
 - 1109 
 - 精華
 - 0 
 - UID
 - 2 
  
 
 
 
    
 | 
 
本實例演示如何在TListView元件中顯示資料庫的內容。  
 
  首先創建一個新的項目,然後向窗體上添加一個TQuery元件和一個TListView元件。添加元件後的窗體如圖1所示。 
 
  
圖1 主介面 
 
設定TQuery元件的DatabaseName屬性設定為DBDEMOS,SQL屬性設定為select * from country,Active屬性設定為True。然後添加程式初始化代碼如下: 
 
 
- procedure TForm1.FormCreate(Sender: TObject);
 
 - var
 
 -  i:Integer;
 
 -  TempColumn:TListColumn;
 
 -  TempItem:TListItem;
 
 - begin
 
 -  ListView1.ViewStyle:=vsReport;
 
 -  for i:=0 to Query1.FieldCount-1 do
 
 -  begin
 
 -   TempColumn:=self.ListView1.Columns.Add;
 
 -   TempColumn.Caption:=Query1.Fields[i].FieldName;
 
 -  end;
 
 -  Query1.First;
 
 -  while not Query1.Eof do
 
 -  begin
 
 -   TempItem:=self.ListView1.Items.Add;
 
 -   TempItem.Caption:=Query1.Fields[0].AsString;
 
 -   for i:=1 to Query1.FieldCount-1 do
 
 -   begin
 
 -    TempItem.SubItems.Add(Query1.Fields[i].AsString);
 
 -   end;
 
 -   Query1.Next;
 
 -  end;
 
 - end;
 
  複製代碼 
程式首先透過ListView1.ViewStyle:=vsReport語句設定TListView元件的ViewStyle屬性值為vsReport。然後透過第1個循環中的TempColumn:=self.ListView1.Columns.Add和TempColumn.Caption:=Query1.Fields.FieldName語句在TListView元件的標題行中顯示資料庫中字段的名稱。最後透過一個循環逐行輸出資料庫的所有數據。 
 
  程式代碼如下: 
- unit Unit1;
 
 - interface
 
 - uses
 
  
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 
 - Dialogs, DB, ADODB, Grids, DBGrids, ComCtrls, DBTables;
 
  
- type
 
 -  TForm1 = class(TForm)
 
 -  Query1: TQuery;
 
 -  ListView1: TListView;
 
 -  procedure FormCreate(Sender: TObject);
 
 - private
 
 -  { Private declarations }
 
 - public
 
 -  { Public declarations }
 
 - end;
 
  
- var
 
 -  Form1: TForm1;
 
 -  implementation
 
 -  {$R *.dfm}
 
  
- procedure TForm1.FormCreate(Sender: TObject);
 
 - var
 
 -  i:Integer;
 
 -  TempColumn:TListColumn;
 
 -  TempItem:TListItem;
 
 - begin
 
 -  ListView1.ViewStyle:=vsReport;
 
 -  for i:=0 to Query1.FieldCount-1 do
 
 -  begin
 
 -   TempColumn:=self.ListView1.Columns.Add;
 
 -   TempColumn.Caption:=Query1.Fields[i].FieldName;
 
 -  end;
 
 -  Query1.First;
 
 -  while not Query1.Eof do
 
 -  begin
 
 -   TempItem:=self.ListView1.Items.Add;
 
 -   TempItem.Caption:=Query1.Fields[0].AsString;
 
 -   for i:=1 to Query1.FieldCount-1 do
 
 -   begin
 
 -    TempItem.SubItems.Add(Query1.Fields[i].AsString);
 
 -   end;
 
 -   Query1.Next;
 
 -  end;
 
 - end;
 
 - end.
 
  複製代碼 
 
保存文件,然後按F9鍵運行程式,程式運行結果如圖2所示。 
 
  
圖2 程式運行結果 
 
from: http://big5.yesky.com/b5/dev.yesky.com/450/2289950.shtml |   
 
  
 |