[DUG] D2007 Record iterators

John Bird johnkbird at paradise.net.nz
Sun Jun 10 22:53:08 NZST 2007


I saw in the D2007 update 1 help errata mentioned that there is a way to
iterate over a record not mentioned in the help.

Does anyone have more information on this?

I am interested if this means there is a way to iterate over the fields in a
record, similar to iterating over the components on a form as in this
example below:

I have something not using the later iterator syntax but effectively doing
the same thing when I was writing a generic routine to print any form - it
has code like:

(comp here is the passed name of the form to print)


  for I := 0 to comp.ComponentCount - 1 do
  begin
    if Comp.components[i] is TEdit then
    begin
      ltype:='Edit';
      top:=(Comp.Components[i] as TEdit).top;
      left:=(Comp.Components[i] as TEdit).left;
      width:=(Comp.Components[i] as TEdit).width;
      text:=(Comp.Components[i] as TEdit).text;
      compfont:=(Comp.Components[i] as TEdit).font;
      lfontstyles:=(Comp.Components[i] as TEdit).font.style;
      lfontsize:=(Comp.Components[i] as TEdit).font.size;
      printablecomp:=true;
    end else
    if Comp.components[i] is TLabel then
    begin
      ltype:='Label';
      top:=(Comp.Components[i] as TLabel).top;
      left:=(Comp.Components[i] as TLabel).left;
      width:=(Comp.Components[i] as TLabel).width;
      text:=(Comp.Components[i] as TLabel).caption;
      compfont:=(Comp.Components[i] as TLabel).font;
      lfontstyles:=(Comp.Components[i] as TLabel).font.style;
      lfontsize:=(Comp.Components[i] as TLabel).font.size;
      printablecomp:=true;

   and so on....


John




More information about the Delphi mailing list