http://www.adaconcept.com/programs/ontozorendszeres_szimulacio/szimulacio-ontozorendszer.adb
with Szimulacio.Kert;                                                                                                                      -- az Elaborate_All pragma hasznalata miatt kell ez a with

pragma Elaborate_All(Szimulacio.Kert);                                                                                                     -- erre szukseg van, hiszen a Kert.Nem_Fu_Terv_Elemek_Szama_A_Terven fuggveny visszateresi erteket tipusdefinicio hasznalja

package body Szimulacio.Ontozorendszer is


   -- Csak nagyon nagy odafigyelessel csinaljunk ilyet!
   Reszletpontok_Tomb : Reszletpont_Tomb_Tipus(1 .. Kert.Nem_Fu_Terv_Elemek_Szama_A_Terven) := ( others => Alapertelmezett_Reszletpont );  -- NAGYON FONTOS az indexeles, kihasznaljuk a program mas reszeiben!!!


   function Reszletpontok return Reszletpont_Tomb_Tipus is
   begin
      return Reszletpontok_Tomb;
   end Reszletpontok;


begin

   Reszletpontok_Tomb_Inicializalasa:
   declare
      use type Kert.Terv_Elemek_Tipus;

      Rt : Reszletpont_Tomb_Tipus renames Reszletpontok_Tomb;
      k  : Natural range Rt'First - 1 .. Rt'Last := Rt'First - 1;                                                                          -- trukk
   begin
      for i in Kert.Terv'Range(1) loop
         for j in Kert.Terv'Range(2) loop
            if Kert.Terv(i,j) /= Kert.Fu then
               Rt(k + 1) := (Tipus        => Kert.Terv(i,j),
                             X_Koordinata => i,
                             Y_Koordinata => j);
               k := k + 1;
            end if;
         end loop;
      end loop;
   end Reszletpontok_Tomb_Inicializalasa;

end Szimulacio.Ontozorendszer;