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;