Resumiendo y para que tengas una idea práctica de lo que te expone
mamcx, te muestro como crear elementos de tu lista y como contarlos de forma recursiva, en lugar de con un simple bucle:
Código Delphi
[-]
type
pnodo = ^tnodo;
tnodo=record
data: string;
prox: pnodo;
end;
var
p1, p2, p3, p4: tnodo;
function cuenta(nodo: pnodo): integer;
begin
Result:= 1;
if nodo <> nil then
Result:= Result + cuenta(nodo.prox);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Count: integer;
begin
p1.prox:= @p2;
p2.prox:= @p3;
p3.prox:= nil;
Count:= cuenta(p1.prox);
end;
Saludos.