Uses

Para poder utilizar un módulo es necesario que éste sea localizable, se haga referencia a él con la claúsula Uses.

En el momento en que abrimos una aplicación Delphi este ya incluye por defecto en cada Unit los siguientes mandatos:

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

¿Qué está haciendo? Dejar que se dirija a esas unidades como básicas para el funcionamiento, y esto lo hace dentro de la sección Interface de la unidad. No es este el único sitio donde se puede declarar, incluso es conveniente que si tan sólo se va a utilizar en ese módulo, se utilice la sección Implementation.

El hecho de incluir las propias de Delphi, como es el caso anterior, es lógico, pues de lo contrario no podríamos trabajar, en esos ficheros están definidas las funciones básicas, pero no se trata tan sólo de los propios del lenguaje, sino también de aquellos que construimos dentro de la aplicación. El caso más claro es que para dirigirse a una variable que se ha creado en una unidad distinta necesitamos poner en uso esta, en caso contrario no es localizable.

Una mención al problema de dos unidades utilizándose mutuamente, es decir, que en la sección de interfaz tengamos en una unidad Unit1 un Uses Unit2 y en la Unit2 un Uses Unit1. Esto provocaría un error por recursividad.