- 註冊時間
- 2006-3-13
- 最後登錄
- 2025-1-10
- 在線時間
- 673 小時
- 閱讀權限
- 200
- 積分
- 417
- 帖子
- 1107
- 精華
- 0
- UID
- 2
  
|
在 Delphi 中使用 ADO 作資料連接元件處理的時,可以使用 Sort 屬性來作出點選標題欄排序的功能。程式大致如下:- procedure TForm1.DBGrid1TitleClick(Column: TColumn);
- var
- i: integer;
- begin
- if ADOQuery1.State = dsBrowse then
- begin
- //計算欄位不可排列
- if ADOQuery1.FieldByName(Column.FieldName).FieldKind = fkData then
- begin
- for i := 0 to DBGrid1.Columns.Count -1 do
- begin
- if DBGrid1.Columns[i] <> Column then
- begin
- if (Copy(DBGrid1.Columns[i].Title.Caption,1,2)='▲')
- or (Copy(DBGrid1.Columns[i].Title.Caption,1,2)='▼') then
- DBGrid1.Columns[i].Title.Caption :=
- Copy(DBGrid1.Columns[i].Title.Caption,3,length(DBGrid1.Columns[i].Title.Caption));
- end else begin
- if Copy(DBGrid1.Columns[i].Title.Caption,1,2)='▼' then
- begin
- Column.Title.Caption :=
- '▲' + Copy(Column.Title.Caption,3,length(Column.Title.Caption));
- ADOQuery1.Sort := Column.FieldName + ' DESC';
- end else if Copy(DBGrid1.Columns[i].Title.Caption,1,2)='▲' then
- begin
- Column.Title.Caption :=
- '▼' + Copy(Column.Title.Caption,3,length(Column.Title.Caption));
- ADOQuery1.Sort := Column.FieldName;
- end else
- begin
- Column.Title.Caption := '▼' + Column.Title.Caption;
- ADOQuery1.Sort := Column.FieldName;
- end;
- end;
- end;
- end;
- end;
- end;
複製代碼 請注意其中指定升冪(ASC)降冪(DESC)一定要用大寫,否則程式會出錯 |
|