Ta question n'est pas si bête et effectivement, il y a quelques principes pour declarer des types.
1) on peu declarer des types dans :
- La partie interface ou implementation d'une unité
- Une fonction, procedure ou methode de classe
2) on peu declarer des types a n'importe quel moment, aprés ou avant une portion de code, une delcaration de classe ou de variables ou de constantes, ou même encore avant une close uses bien que ce dernier point soit sujet a causion a cause de l'ecrasement possible des types par une unité.
3) un type doit etre déclaré avant une declaration de variable ou constante de ce type, a l'exception des types pointeur sur type qui peuvent etre declaré avant la declaration du type pointé.
exemple :
Unit LesTypes;
interface
uses Windows, SysUtils; // Clause uses de l'interface
type
pZPoint = ^TZPoint;
TZPoint = record
X, Y : integer;
end;
type
RGBA = record
case integer of
0: (R,G,B,A: byte);
1: (Color: integer);
end;
var
C : RGBA;
begin
C.R := R;
C.G := G;
C.B := B;
C.A := 0;
result := C.Color;
end;