RxFPC: add enumerator for TRxDbGridColumns

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5840 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2017-04-24 12:44:17 +00:00
parent 66eb145c86
commit f221f5e92d
2 changed files with 43 additions and 4 deletions

View File

@ -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;