diff --git a/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps b/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps index 9a3feac9c..cb0e892ab 100644 --- a/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps +++ b/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps @@ -11,7 +11,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -111,7 +111,7 @@ - + diff --git a/components/rx/trunk/rxdb/rxdbgrid.pas b/components/rx/trunk/rxdb/rxdbgrid.pas index 94f2d60e6..5719ec8b9 100644 --- a/components/rx/trunk/rxdb/rxdbgrid.pas +++ b/components/rx/trunk/rxdb/rxdbgrid.pas @@ -53,6 +53,7 @@ type TRxDBGrid = class; TRxColumn = class; TRxDBGridAbstractTools = class; + TRxDbGridColumnsEnumerator = class; TRxQuickSearchNotifyEvent = procedure(Sender: TObject; Field: TField; @@ -552,9 +553,23 @@ type procedure Notify(Item: TCollectionItem;Action: TCollectionNotification); override; public function Add: TRxColumn; + function GetEnumerator: TRxDbGridColumnsEnumerator; property Items[Index: Integer]: TRxColumn read GetColumn write SetColumn; default; end; + { TRxDbGridColumnsEnumerator } + + TRxDbGridColumnsEnumerator = class + private + FList: TRxDbGridColumns; + FPosition: Integer; + public + constructor Create(AList: TRxDbGridColumns); + function GetCurrent: TRxColumn; + function MoveNext: Boolean; + property Current: TRxColumn read GetCurrent; + end; + { TRxDbGridColumnsSortList } TRxDbGridColumnsSortList = class(TFPList) @@ -1097,6 +1112,25 @@ type procedure EditingDone; override; end; +{ TRxDbGridColumnsEnumerator } + +constructor TRxDbGridColumnsEnumerator.Create(AList: TRxDbGridColumns); +begin + FList := AList; + FPosition := -1; +end; + +function TRxDbGridColumnsEnumerator.GetCurrent: TRxColumn; +begin + Result := FList[FPosition]; +end; + +function TRxDbGridColumnsEnumerator.MoveNext: Boolean; +begin + Inc(FPosition); + Result := FPosition < FList.Count; +end; + { TFilterColDlgButton } procedure TFilterColDlgButton.Show(AGrid: TRxDBGrid; Col: integer); @@ -6045,6 +6079,11 @@ begin Result := TRxColumn(inherited Add); end; +function TRxDbGridColumns.GetEnumerator: TRxDbGridColumnsEnumerator; +begin + Result:=TRxDbGridColumnsEnumerator.Create(Self); +end; + { TRxColumn } function TRxColumn.GetKeyList: TStrings;