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

@ -11,7 +11,7 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="30"/>
<UsageCount Value="31"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
@ -23,7 +23,7 @@
<IsVisibleTab Value="True"/>
<TopLine Value="25"/>
<CursorPos X="16" Y="51"/>
<UsageCount Value="30"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
@ -37,7 +37,7 @@
<EditorIndex Value="1"/>
<TopLine Value="173"/>
<CursorPos X="47" Y="184"/>
<UsageCount Value="30"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit2>
@ -111,7 +111,7 @@
<EditorIndex Value="2"/>
<TopLine Value="226"/>
<CursorPos X="3" Y="239"/>
<UsageCount Value="10"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit11>
<Unit12>

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;