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

View File

@ -53,6 +53,7 @@ type
TRxDBGrid = class; TRxDBGrid = class;
TRxColumn = class; TRxColumn = class;
TRxDBGridAbstractTools = class; TRxDBGridAbstractTools = class;
TRxDbGridColumnsEnumerator = class;
TRxQuickSearchNotifyEvent = procedure(Sender: TObject; Field: TField; TRxQuickSearchNotifyEvent = procedure(Sender: TObject; Field: TField;
@ -552,9 +553,23 @@ type
procedure Notify(Item: TCollectionItem;Action: TCollectionNotification); override; procedure Notify(Item: TCollectionItem;Action: TCollectionNotification); override;
public public
function Add: TRxColumn; function Add: TRxColumn;
function GetEnumerator: TRxDbGridColumnsEnumerator;
property Items[Index: Integer]: TRxColumn read GetColumn write SetColumn; default; property Items[Index: Integer]: TRxColumn read GetColumn write SetColumn; default;
end; 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 }
TRxDbGridColumnsSortList = class(TFPList) TRxDbGridColumnsSortList = class(TFPList)
@ -1097,6 +1112,25 @@ type
procedure EditingDone; override; procedure EditingDone; override;
end; 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 } { TFilterColDlgButton }
procedure TFilterColDlgButton.Show(AGrid: TRxDBGrid; Col: integer); procedure TFilterColDlgButton.Show(AGrid: TRxDBGrid; Col: integer);
@ -6045,6 +6079,11 @@ begin
Result := TRxColumn(inherited Add); Result := TRxColumn(inherited Add);
end; end;
function TRxDbGridColumns.GetEnumerator: TRxDbGridColumnsEnumerator;
begin
Result:=TRxDbGridColumnsEnumerator.Create(Self);
end;
{ TRxColumn } { TRxColumn }
function TRxColumn.GetKeyList: TStrings; function TRxColumn.GetKeyList: TStrings;