在 DBGrid 的 OnMouseMove 寫入
- procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
- var
- pt: TGridcoord;
- begin
- // 判別滑鼠是否移動到標題列
- // 若是, 則滑鼠為手指形,
- // 否則為預設
- pt := DBGrid1.MouseCoord(x, y);
- if pt.y=0 then
- DBGrid1.Cursor:=crHandPoint
- else
- DBGrid1.Cursor:=crDefault;
- end;
再在 OnTitleClick 寫入
- procedure TForm1.DBGrid1TitleClick(Column: TColumn);
- {$J+}
- // 指定為靜態變數
- // 做為記錄前次滑鼠點擊的欄位
- const PreviousColumnIndex : integer = 0;
- {$J-}
- begin
- if DBGrid1.DataSource.DataSet is TCustomADODataSet then
- with TCustomADODataSet(DBGrid1.DataSource.DataSet) do
- begin
- try
- DBGrid1.Columns[PreviousColumnIndex].title.Font.Style := DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
- except
- end;
- Column.title.Font.Style := Column.title.Font.Style + [fsBold];
- DBGrid1.Columns[PreviousColumnIndex].Title.Caption := StringReplace(DBGrid1.Columns[PreviousColumnIndex].Title.Caption,' ▲', '',[rfReplaceAll]);
- DBGrid1.Columns[PreviousColumnIndex].Title.Caption := StringReplace(DBGrid1.Columns[PreviousColumnIndex].Title.Caption,' ▼', '',[rfReplaceAll]);
- PreviousColumnIndex := Column.Index;
- if (Pos(Column.Field.FieldName, Sort)=1) and (Pos(' DESC',Sort)=0) then
- begin
- Sort := Column.Field.FieldName + ' DESC';
- DBGrid1.Columns[PreviousColumnIndex].Title.Caption := DBGrid1.Columns[PreviousColumnIndex].Title.Caption + ' ▼';
- end
- else
- begin
- Sort := Column.Field.FieldName + ' ASC';
- DBGrid1.Columns[PreviousColumnIndex].Title.Caption := DBGrid1.Columns[PreviousColumnIndex].Title.Caption + ' ▲';
- end;
- end;
- end;
自己再自行做變化.
沒有留言:
張貼留言