http://www.adaconcept.com/programs/orokles/utemezo.adb
-- Rotter Gyorgy
-- Ebben a programunkban az objektum orientalt programozassal kezdunk ismerkedni.

with Ada.Text_IO;


with Idozito.Muvelet_Idozito;                                                                                -- Emlekezteto, ha egy csomagot with-elunk a szulo csomagot is with -eljuk vele egyutt!

procedure utemezo is
   -- vegyuk eszre, hogy tulajdonkeppen ket szalon fut a programunk.
   -- Az "egyik szal az, ahol az ido telik (operacios rendszer), a masik szal pedig az altalunk irt program"

   Visszaszamlalo : Idozito.Idozito_Tipus;

begin
   Ada.Text_IO.Put_Line("Program indul");

   Idozito.Inicializal(Visszaszamlalo);

   while not Idozito.Lejart(Visszaszamlalo) loop
      Idozito.Start(Visszaszamlalo, 2.0);                                                                    -- nem a ciklus elott inditottuk el a Visszaszamlalo -t
      Ada.Text_IO.Put_Line("Ezek a sorok varakozas kozben irodnak ki az elso ciklusban.");

      Idozito.Frissit(Visszaszamlalo);
   end loop;


   declare
      Kiiras_Idozito : Idozito.Muvelet_Idozito.Muvelet_Idozito_Tipus;

      procedure Kiir is
      begin
         Ada.Text_IO.Put_Line("Kiiras_Idozito lejart.");
      end Kiir;

      Kiiras : constant Idozito.Muvelet_Idozito.Muvelet_Mutato_Tipus := Kiir'Unrestricted_Access;
   begin

      Idozito.Inicializal(Visszaszamlalo);
      Idozito.Start(Visszaszamlalo, 4.0);

      Idozito.Muvelet_Idozito.Inicializal(Kiiras_Idozito);
      Idozito.Muvelet_Idozito.Muvelet_Beallitas(Kiiras_Idozito, Kiiras);

      Idozito.Muvelet_Idozito.Start(Kiiras_Idozito, 2.0);                                                    -- figyeljuk meg, hogy a Idozito.Muvelet_Idozito csomagban nincsen delkaralva Start nevu eljaras.


      while not Idozito.Lejart(Visszaszamlalo) loop

         Ada.Text_IO.Put_Line("Ezek a sorok varakozas kozben irodnak ki a masodik ciklusban.");

         Idozito.Muvelet_Idozito.Vegrehajt(Kiiras_Idozito);


         Idozito.Muvelet_Idozito.Frissit(Kiiras_Idozito);                                                    -- figyeljuk meg, hogy a Idozito.Muvelet_Idozito csomagban nincsen delkaralva Frissit nevu eljaras.
         Idozito.Frissit(Visszaszamlalo);
      end loop;

   end;

   Ada.Text_IO.Put_Line("Program vege");
end utemezo;