import GUI
var nameTextField, addressTextField, numberTextField, fileTextField, file2, successful, ind, doneButton, win, first, saveButton, second, file, box, picture, sni, bck, bck2, fileName, errorLabel1,
errorLabel2, filenameLabel, loadingpicture, textboxTextField, textboxchoice : int
var firstname, lastname, seatnum, report, num, list, part, filename, list2, chosen : string
var arrayitems : flexible array 1 .. 0 of string
var item : array 1 .. 6 of int % The menu items.
var name : array 1 .. 6 of string (20) := init ("Open", "Save As", "---", "Quit", "Add Passenger", "Edit Passenger List")
var nameLabel, addressLabel, numberLabel, textBox : int
win := Window.Open ("graphics:670;350,nobuttonbar")
bck := Pic.FileNew ("airrecordsbck.jpg")
bck2 := Pic.FileNew ("logo.gif")
ind := 0
var ch : string (1)
%%%% creates all procedures %%%%
proc MenuSelected
for i : 1 .. 6
if item (i) = GUI.GetEventWidgetID then
Text.Locate (maxrow, 1)
put name (i) + " selected " ..
end if
end for
end MenuSelected
procedure ChoseLine (line : int)
chosen := arrayitems (line)
GUI.SetText (textboxTextField, chosen)
end ChoseLine
procedure NameEntered (text : string)
GUI.SetSelection (addressTextField, 0, 0)
GUI.SetActive (addressTextField)
end NameEntered
procedure AddressEntered (text : string)
GUI.SetSelection (nameTextField, 0, 0)
GUI.SetActive (nameTextField)
end AddressEntered
procedure textboxfield (text : string)
GUI.SetSelection (textboxTextField, 0, 0)
GUI.SetActive (textboxTextField)
end textboxfield
procedure NumberEntered (text : string)
GUI.SetSelection (numberTextField, 0, 0)
GUI.SetActive (numberTextField)
end NumberEntered
procedure fileEntered (text : string)
GUI.SetSelection (fileTextField, 0, 0)
GUI.SetActive (fileTextField)
end fileEntered
proc done
ind := 1
end done
%%%% creates all error checking procs %%%% -add a strintok
proc seatcheck (sns : string)
for a : 1 .. 5
GUI.Hide (errorLabel1)
GUI.Hide (errorLabel2)
end for
if strintok (sns) = false then
ind := 1
GUI.Show (errorLabel1)
delay (1000)
GUI.Hide (errorLabel1)
else
sni := strint (sns)
if sni > 12 or sni < 1 then
ind := 1
GUI.Show (errorLabel2)
delay (1000)
GUI.Hide (errorLabel2)
end if
end if
end seatcheck
proc writeinfo
firstname := GUI.GetText (nameTextField)
lastname := GUI.GetText (addressTextField)
seatnum := GUI.GetText (numberTextField)
seatcheck (seatnum)
if ind = 0 then
open : file, "airrecords.t", put
firstname := firstname + " "
lastname := lastname + " "
seatnum := seatnum + " "
if file = 0 then
put "Error with file 'airrecords.txt', check for errors "
else
put : file, firstname
..
put : file, lastname
..
put : file, seatnum
end if
close : file
open : file, "airrecords.t", get
if file = 0 then
put "Error with file 'airrecords.txt', check for errors "
else
loop
exit when eof (file)
get : file, part : *
GUI.AddLine (textBox, part)
GUI.AddLine (textboxchoice, part)
end loop
end if
close : file
GUI.Show (successful)
delay (1000)
GUI.Hide (successful)
GUI.Refresh
elsif ind = 1 then
ind := 0
end if
end writeinfo
setscreen ("offscreenonly,nocursor")
%%%% creates all objects %%%%
loadingpicture := GUI.CreatePicture (0, 0, bck2, false)
picture := GUI.CreatePicture (0, -8, bck, false)
doneButton := GUI.CreateButton (550, 305, 100, "ok", writeinfo)
nameTextField := GUI.CreateTextFieldFull (50, 307, 100, "", NameEntered, GUI.INDENT, 0, 0)
textboxchoice := GUI.CreateTextBoxChoice (10, 10, 490, 275, 0, 0, ChoseLine)
textboxTextField := GUI.CreateTextFieldFull (559, 270, 290, "", textboxfield, GUI.INDENT, 0, 0)
addressTextField := GUI.CreateTextFieldFull (230, 307, 100, "", AddressEntered, GUI.INDENT, 0, 0)
numberTextField := GUI.CreateTextFieldFull (420, 307, 100, "", NumberEntered, GUI.INDENT, 0, 0)
fileTextField := GUI.CreateTextFieldFull (420, 307, 100, "", fileEntered, GUI.INDENT, 0, 0)
nameLabel := GUI.CreateLabelFull (39, 308, "Name:", 0, 0, GUI.RIGHT, 0)
addressLabel := GUI.CreateLabelFull (220, 308, "Last Name:", 0, 0, GUI.RIGHT, 0)
numberLabel := GUI.CreateLabelFull (412, 308, "Seat Number:", 0, 0, GUI.RIGHT, 0)
filenameLabel := GUI.CreateLabelFull (412, 308, "File Name:", 0, 0, GUI.RIGHT, 0)
fileName := GUI.CreateLabelFull (173, 290, "airrecords.t", 0, 0, GUI.RIGHT, 0)
textBox := GUI.CreateTextBoxFull (10, 10, 490, 275, GUI.INDENT, 0)
errorLabel2 := GUI.CreateLabelFull (270, 290, "Seat number must be between 1 and 12", 0, 0, GUI.RIGHT, 0)
errorLabel1 := GUI.CreateLabelFull (270, 290, "Seat number must be a number", 0, 0, GUI.RIGHT, 0)
successful := GUI.CreateLabelFull (650, 290, "Added Successfully", 0, 0, GUI.RIGHT, 0)
for u : 1 .. 5
GUI.Hide (textboxTextField)
GUI.Hide (successful)
GUI.Hide (fileTextField)
GUI.Hide (picture)
GUI.Hide (doneButton)
GUI.Hide (nameTextField)
GUI.Hide (addressTextField)
GUI.Hide (numberTextField)
GUI.Hide (nameLabel)
GUI.Hide (addressLabel)
GUI.Hide (numberLabel)
GUI.Hide (textBox)
GUI.Hide (errorLabel1)
GUI.Hide (errorLabel2)
GUI.Hide (fileName)
GUI.Hide (filenameLabel)
GUI.Hide (textboxchoice)
GUI.Refresh
end for
setscreen ("nooffscreenonly")
GUI.Show (loadingpicture)
getch (ch)
GUI.Hide (loadingpicture)
%%%% Creates 'functional' procedures %%%%
proc saveas
for t : 1 .. 5
GUI.Hide (textBox)
GUI.Hide (textboxTextField)
GUI.Hide (successful)
GUI.Hide (saveButton)
GUI.Hide (doneButton)
GUI.Hide (nameTextField)
GUI.Hide (addressTextField)
GUI.Hide (numberTextField)
GUI.Hide (nameLabel)
GUI.Hide (addressLabel)
GUI.Hide (numberLabel)
GUI.Hide (picture)
GUI.Hide (fileName)
GUI.Hide (textboxTextField)
end for
GUI.Show (textboxchoice)
GUI.Show (fileTextField)
GUI.Show (saveButton)
GUI.Show (filenameLabel)
end saveas
proc savelist % make it save to a new file
list2 := list
filename := GUI.GetText (fileTextField)
filename := filename + ".t"
Dir.Change ("Records")
open : file2, filename, put
if ind = 0 then
if file2 = 0 then
put "Error with file"
else
put : file2, list2
GUI.Show (successful)
delay (1000)
GUI.Hide (successful)
end if
close : file2
end if
end savelist
%%% save button %%%%
saveButton := GUI.CreateButton (550, 305, 100, "ok", savelist)
for u : 1 .. 5
GUI.Hide (saveButton)
end for
%%%%%
proc addP
for k : 1 .. 5
GUI.Hide (textboxTextField)
GUI.Hide (successful)
GUI.Hide (fileTextField)
GUI.Hide (saveButton)
GUI.Hide (fileName)
GUI.Hide (textBox)
GUI.Hide (filenameLabel)
GUI.Hide (textboxchoice)
GUI.Refresh
end for
GUI.Show (picture)
GUI.Show (doneButton)
GUI.Show (nameTextField)
GUI.Show (addressTextField)
GUI.Show (numberTextField)
GUI.Show (numberLabel)
GUI.Show (nameLabel)
GUI.Show (addressLabel)
end addP
proc remP % AKA edit passenger list
for i : 1 .. 5
GUI.Hide (textboxTextField)
GUI.Hide (successful)
GUI.Hide (fileTextField)
GUI.Hide (saveButton)
GUI.Hide (doneButton)
GUI.Hide (nameTextField)
GUI.Hide (addressTextField)
GUI.Hide (numberTextField)
GUI.Hide (nameLabel)
GUI.Hide (addressLabel)
GUI.Hide (numberLabel)
GUI.Hide (picture)
GUI.Hide (fileName)
GUI.Hide (filenameLabel)
GUI.Hide (textboxchoice)
GUI.Refresh
end for
GUI.Show (textboxchoice)
GUI.Show (textboxTextField)
end remP
proc Open % used to open other airplane records
for i : 1 .. 5
GUI.Hide (successful)
GUI.Hide (fileTextField)
GUI.Hide (saveButton)
GUI.Hide (doneButton)
GUI.Hide (nameTextField)
GUI.Hide (addressTextField)
GUI.Hide (numberTextField)
GUI.Hide (nameLabel)
GUI.Hide (addressLabel)
GUI.Hide (numberLabel)
GUI.Hide (picture)
GUI.Hide (filenameLabel)
GUI.Hide (textboxchoice)
GUI.Refresh
end for
GUI.Show (fileName)
GUI.Show (textboxTextField)
GUI.Show(textBox)
end Open
proc Quit
GUI.Quit
Window.Close (win)
end Quit
%%%%%%PROGRAM%%%%%%%
var cnt :int := 0
list := ""
open : file, "Records/airrecords.t", get
if file = 0 then
put "Error with file 'airrecords.txt', check for errors "
else
loop
exit when eof (file)
new arrayitems, 500 % max of 500 ppl in list
cnt := cnt + 1
get : file, part : *
GUI.AddLine (textBox, part)
GUI.AddLine (textboxchoice, part)
arrayitems (cnt) := part
end loop
GUI.SetText (textboxTextField, list)
GUI.Hide (textboxTextField)
end if
close : file
%Creates the 1st menu
first := GUI.CreateMenu ("File")
item (1) := GUI.CreateMenuItem (name (1), Open)
item (2) := GUI.CreateMenuItem (name (2), saveas)
item (3) := GUI.CreateMenuItem (name (3), MenuSelected)
item (4) := GUI.CreateMenuItem (name (4), Quit)
%Creates the 2nd menu
second := GUI.CreateMenu ("Edit")
item (5) := GUI.CreateMenuItem (name (5), addP)
item (6) := GUI.CreateMenuItem (name (6), remP)
%Exiting loop
loop
exit when GUI.ProcessEvent
end loop
|