Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

Looping a form's control count to find TppDBText

edited April 2005 in General
Hi all,

i want to apply a certain fixed properties to TppDBText of a form. This is
what i did:

with AForm do
begin
for i := 0 to ControlCount - 1 do
begin
if (Controls[i] is TppDBText) then <---- Error here
TppDBText((Controls[i])).AutoSize := False;
end;
end;

Unfortunately, i encounter an error: Incompatible types: 'TppDBText' and
'TControl'.
Is there a workaround for this?

Thanks.

Regards,
Jacky

Comments

  • edited April 2005
    Hi Jacky,

    ReportBuilder was designed so it is easy to loop through all the components
    in a report using the Bands and Objects lists. See the following article
    for more information.

    ----------------------------------------------
    Tech Tip: Loop Thru All Objects in a Report
    ---------------------------------------------

    A ReportBuilder report is composed of a set of components. The basic
    structure is

    Reports.Bands[].Objects[]

    The bands and objects within the report can be accessed directly by object
    name or via the Bands and Objects array properties.

    Below is an example of using the Bands and Objects array properties to
    change the font for all objects on a report.


    uses
    ppClass;


    procedure AssignFontToReport(aFont: TFont; aReport: TppCustomReport);
    var
    liBand: Integer;
    liObject: Integer;
    lObject: TppComponent;

    begin

    for liBand := 0 to aReport.BandCount-1 do

    for liObject := 0 to aReport.Bands[liBand].ObjectCount-1 do
    begin
    lObject := aReport.Bands[liBand].Objects[liObject];

    if lObject.HasFont then
    lObject.Font := aFont;

    end;

    end;


    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited April 2005
    Hi Nico,

    Thanks man, it works like a charm...

This discussion has been closed.