Ada 95 :: x72_t1.ada

with Class_window;
use  Class_window;
package Pack_globals is
  p_result : P_Window;
end Pack_globals;


with Simple_io, Class_window, Class_dialog, Pack_globals;
use  Simple_io, Class_window, Class_dialog, Pack_globals;
function user_input( cb_mes:in String ) return String is
  miles  : Float;             -- Miles input by user
  last   : Positive;          --
  str_kms: String( 1 .. 10 ); -- As a string in Kms
  str_mls: String( 1 .. 10 ); -- As a string in Miles
begin
  begin
    get( cb_mes & ".", miles, last );
    put( str_kms, miles * 1.609_344, aft=>2, exp=>0 );
    put( str_mls, miles, aft=>2, exp=>0 );
    put( p_result.all, "Distance in Miles = " );
    put( p_result.all, str_mls ); new_line( p_result.all );
    put( p_result.all, "Distance in Kms   = " );
    put( p_result.all, str_kms ); new_line( p_result.all );
  exception
    when Data_Error =>
      put( p_result.all, " Not a valid number" );
      new_line( p_result.all );
    when others =>
      put( p_result.all, " [Calculation error]" );
      new_line( p_result.all );
  end;
  return "";
end user_input;


with Class_input_manager, Class_window,
     Class_dialog, Pack_globals, user_input;
use  Class_input_manager, Class_window,
     Class_dialog, Pack_globals;
procedure main is
begin
  window_prologue;                -- Setup window system
  declare
    result : aliased Window;      -- Result window
    input  : Dialog;              -- Input Window
    title  : Window;              -- title Window
  begin
    framework( title,  20,  1,  36, 5 );   -- Title Window
    framework( result, 30, 10,  36, 5 );   -- Result Window
  
    position( title, 8, 2 );
    put( title, "Miles to kilometres" );
    framework( input, 5, 10, 22,            -- Input Window
               "Miles", user_input'Access );
    p_result := result'Unchecked_Access;
  
    window_start;             -- Start the user interaction
  end;
  window_epilogue;            -- Close window system
end main;


© M.A.Smith University of Brighton. Created September 1995 last modified May 1997.
Comments, suggestions, etc. M.A.Smith@brighton.ac.uk * [Home page]