[DUG] calling procedures in other units

Conor Boyd lists at conor.org.uk
Thu Nov 24 08:29:29 NZDT 2005


Compilers are generally pretty consistent. ;-)

It sounds like you've got a unit with simply methods in it (i.e. no class).

However, your form unit will be based around a class, so your methods will
be methods of that class, hence the requirement to prefix the method call
with an object reference.  When you create a form, by default you get an
object reference (your frmOtherForm) created pointing to a default instance
of your form.

Personally I think the default object that gets created is a bit confusing
in terms of encouraging thinking in an OO manner.

HTH,

Conor

-----Original Message-----
From: delphi-bounces at ns3.123.co.nz [mailto:delphi-bounces at ns3.123.co.nz] On
Behalf Of John Bird

Here is something that puzzles me, and maybe I have missed something, or my
D5 compiler is inconsistent, or I am doing it wrong?

I have a group of external procedures in a code only unit (no form) and to
access them I just have the unit in the uses clause and then call in code by
name eg

    externalproc1(arg1,arg2,arg3....)

If the other unit has a form attached then I use the same uses syntax, but I
have to call it by

    frmOtherform.externalproc1(arg1,arg2,arg3...)

Except that I think I have also have found sometimes the compiler does seem
to figure out where the externalproc1 is and doesn't always require the
formname before the procedure.

All I was trying to do was call some code in an external unit which does
printing, and the only reason I have a form for that unit is that I plonked
the printdialog on it (it doesn't have anything else on the form) as it
seemed best to keep it with the printing code.  But it made calling the
printing routines more verbose. Is there a better way to do it?



More information about the Delphi mailing list