Nello
Thanks very much for going the extra mile for me.
That solution works well and save quite a few lines of code.  My main
problem was not realising that the FindComponents should have been called
from the form component.
I appreciate your always well considered assistance.
Mark
(Didn't respond earlier because I was out of the office - (Corrs!))
----- Original Message -----
From: "Nello Sestini" <[EMAIL PROTECTED]>
To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]>
Sent: Friday, October 12, 2001 10:36 PM
Subject: Re: [DUG]: Array of labels in QR


> > > function GetMyLabel(Index:Integer): TQRLabel;
> > > property MyLabels[Index: Integer]: TQRLabel read GetMyLabel;
> > default;
> > These two under Public Declarations?
>
> i'd make GetMyLabel Protected or Private and property Mylabels Public.
>
> Probably it doesn't much matter because you're not going
> to access the property from outside the form anyway.
>
> > >
> > > function GetMyLabel(Index:Integer):TQRLabel;
> > > begin
> > >       // in production probably should do some error checking ...
> > >     return FindComponent(format('mylabel_%d',[Index]);
> > > end;
> > This under Implementation
>
> correct
>
> > Should it be "result :=   [...]
>
> oops - yes it should.   (i've been writing C++ - i knew something
> would creep in).
>
> > Should it be "  [...]  MyLabels.FindComponent ...etc"?
>
> no.    FindComponent searches the component list by name.
>
> So you want to call the FindComponent method of the owner of your
> QRLabels.   This is the TForm.
>
> > I get error "Undeclared identifier - MyLabels"
>
> > If I leave MyLabels out I get error Undeclared identifier -
> > FindComponent.
> >
> > I can see how FindComponent would work - I'm just tripped up on the
> > declaration details, I think.
>
> see above.
>
> I regret winging this - it's too confusing.    Here is a revised
> version of the functions (that DO compile and even work) which
> should be a lot clearer.
>
> Also, I've posted the full .pas and .dfm files here
> http://roserox.co.th/dugnz/unit2.pas
> http://roserox.co.th/dugnz/unit2.dfm
>
>
> function TForm2.GetMyLabel(Index: Integer): TQRLabel;
> var ret:TQRLabel;
> begin
>       // in production probably should do some error checking ...
>   result:= FindComponent(format('qrlabel_%d',[Index])) as TQRLabel;
> end;
>
> procedure TForm2.Button1Click(Sender: TObject);
> var i:integer;
> begin
>     for i:=1 to 2 do mylabels[i].caption:='foo';
> end;
>
> The QReport in this demo program has two labels on it - QRLabel_1
> and QR_Label_2
>
> -ns
>
>
>
>
>
>
> --------------------------------------------------------------------------
-
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED]
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
>

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to