Example:
procedure IterateDataSet;
var DataSet, DS: TDataSet;
Flds: TFields;
F: TField;
begin
for Flds in DataSet do
for F in Flds do // DataSet can be still accessed by Flds.DataSet
writeln(F.AsString,'|');
(*** Example implementation ***)
type
TDataSetEnumerator = class
private
FDataSet: TDataSet;
FBOF: Boolean;
function GetCurrent: TFields;
public
&nb
sp; constructor Create(ADataSet: TDataSet);
function MoveNext: Boolean;
property Current: TFields read GetCurrent;
end;
operator Enumerator(ADataSet: TDataSet): TDataSetEnumerator;
begin
Result := TDataSetEnumerator.Create(ADataSet);
end;
constructor TDataSetEnumerator.Create(ADataSet: TDataSet);
begin
inherited Create;
FDataSet := ADataSet;
FBOF := True;
FDataSet.First;
end;
div>
function TDataSetEnumerator.GetCurrent: TFields;
begin
Result := FDataSet.Fields;
end;
function TDataSetEnumerator.MoveNext: Boolean;
begin
if FBOF then
FBOF := False
else
FDataSet.Next;
Result := not FDataSet.EOF;
end;
(* *** *)
-Laco.
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
- [fpc-pascal] Suggestion: TDataSetEnumerator silvioprog
- Re: [fpc-pascal] Suggestion: TDataSetEnumer... Michael Van Canneyt
- Re: [fpc-pascal] Suggestion: TDataSetEn... silvioprog
- Re: [fpc-pascal] Suggestion: TDataSetEnumer... Constantine Yannakopoulos
- Re: [fpc-pascal] Suggestion: TDataSetEn... silvioprog
- Re: [fpc-pascal] Suggestion: TDataS... Michael Van Canneyt
- Re: [fpc-pascal] Suggestion: TD... LacaK
- Re: [fpc-pascal] Suggestio... Michael Van Canneyt
- Re: [fpc-pascal] Sugge... LacaK
- Re: [fpc-pascal] S... silvioprog
- Re: [fpc-pascal] S... silvioprog