(** <P>Ces lignes de commentaires indiquent ce que réalise cette unité. Il est
 *  nécessaire d'utiliser les commentaires spéciaux et de respecter l'alignement
 *  du texte dans ces commentaires.</P>
 *  Le texte peut comporter tout type de balise du moment où elles sont prises
 *  en compte dans les feuilles de style DelphiDoc. Les feuilles de style de
 *  DelphiDoc reconnaissent les balises HTML suivantes : <I>P, I, B et BR</I>.
 *  <BR/>
 *  La balise P sert à définir le texte qui sera utilisé comme résumé dans la
 *  description du code.
 *)
unit Unit1;

interface

uses contnrs;

type
  (** <P>TMaClasse1 est déclarée dans la section interface de l'unité <B>Unit1
   *  </B>.</P>
   *  Ici on décrit la classe TMaClasse1.
   *)
  TMaClasse1 = class
  private
    (** <P>Tous les champs d'une classe peuvent être commentés à l'endroit de
     *  leurs déclarations.</P>
     *  Cela comprend toutes les données membres d'une classe.
     *)
    Champ1: String;
    procedure Methode1;
    function Methode2: Integer;
  end;

procedure MaProcedure;

const
  (** <P>'Hello' est la valeur de la constante Const1.</P>
   *)
  Const1 = 'Hello';
  (** <P>'World !' est la valeur de la constante Const2.</P>Hello World ! est
   *  une phrase bien connue des développeurs.
   *)
  Const2: String = ' World !';

var
  (** <P>Les variables globales peuvent aussi être documentées.</P>
   *)
  ObjectList1,
  (** <P>La déclaration de ObjectList2 figure ici.</P>ObjectList1 est de type
      TObjectList.
   *)
  ObjectList2: TObjectList;

implementation

type
  (** <P>TMaClasse2 est déclarée dans la section implémentation de l'unité
   *   <B>Unit1</B>.</P>
   *  Ici on décrit la classe TMaClasse2.
   *)
  TMaClasse2 = class
  end;


(** <P>Cette procédure est déclarée dans la section interface et commentée dans
 *   la section implémentation.</P>
 *  On décrit ici plus complémentement la procedure <I>MaProcedure</I>.
 *)
procedure MaProcedure;
begin
end;


{ TMaClasse1 }

(** <P>Les méthodes sont décrites dans la section implémentation, telle que
 *   c'est le cas pour <B><I>Methode1</I></B>.</P>
 *)
procedure TMaClasse1.Methode1;
begin
//
end;

(** <P>Voici l'autre méthode de TMaClasse1 : <B><I>Methode2</I></B>.</P>
 *)
function TMaClasse1.Methode2: Integer;
begin
//
end;

end.