Из опыта создания универсальных тестовых редакторов — страница 13
описание процедуры выбора функции } End; Var a,f,f1,a2:string; {описание всех программных переменных} b,k:char; c,u,y,a1,b1:text; d,e,i,j,p,z,z1,z2:integer; c1:boolean; g:panel; g1,g2,g3,g4,h:word; Procedure panel.left; {процедура сдвига влево окна выбора} Begin Window(x,22,x+9,22); {закрашивание следующего окна} TextBackGround(green); clrscr; Закрашивание следующего окна- важная функция. Она закрашивает то синее окно, которое было выбрано перед обращением к процедуре. Window(10,22,69,22); {основное окно панели управления} TextBackGround(green); clrscr; TextColor(brown); {установка цвета текста} Write('Новый Открыть Править Результат Печать Выход'); {нанесение надписи на панель управления} If x>=20 Then x:=x-10; {проверка соответствия окна выбора границам панели управления} Этот оператор производит сравнение координат окна выбора с координатами начала панели управления. Если окно выбора “выехало” за границы панели управления, то изменений координат не производится, окно выбора остается на своем месте. Window(x,22,x+9,22); {рисование окна выбора} TextBackGround(blue); clrscr; case x of {выбор надписи на окне выбора} Данное ветвление распознает по координате окна выбора какое слово следует в него вписать. 10:Begin TextColor(green); Write('Новый'); End; 20:Begin TextColor(green); Write('Открыть'); End; 30:Begin TextColor(green); Write('Править'); End; 40:Begin TextColor(green); Write('Результат'); End; 50:Begin TextColor(green); Write('Печать'); End; 60:Begin TextColor(green); Write('Выход'); End; End; End; Procedure panel.right; {процедура сдвига окна выбора вправо} Begin Window(x,22,x+9,22); {закрашивание предыдущего окна} TextBackGround(green); clrscr; Window(10,22,69,22); {рисование окна панели управления} TextBackGround(green); clrscr; TextColor(brown); {изменение цвета текста} Write('Новый Открыть Править Результат Печать Выход'); {нанесение текста на панель управления} Вы, конечно, заметили, что операторы предыдущей и этой процедуры повторяются, поэтому их можно вынести в отдельную процедуру и запускать ее для обновления окна панели управления. If x<=50 Then x:=x+10; {сравнение координат окна выбора с координатами конца окна панели управления} Window(x,22,x+9,22); {рисование окна выбора} TextBackGround(blue); clrscr; case x of {нанесение соответствующего текста на окно выбора} 10:Begin TextColor(green); Write('Новый'); End; 20:Begin TextColor(green); Write('Открыть'); End; 30:Begin TextColor(green); Write('Править'); End; 40:Begin TextColor(green); Write('Результат'); End; 50:Begin TextColor(green); Write('Печать'); End; 60:Begin TextColor(green); Write('Выход'); End; End; End; Procedure pannel; {процедура рисования панели управления} Begin Window(10,22,69,22); TextBackGround(green); clrscr; TextColor(brown); Write('Новый Открыть Править Результат Печать Выход'); End; <Procedure NewF;> {функции тестового редактора} <Procedure OpenF;> <Procedure RedactF;> <Procedure SearchF;> <Procedure PrintF;> Procedure panel.choose; {процедура выбора функции} Begin case x of {по координате окна выбора определяет нужную функцию} 10:NewF; 20:OpenF; 30:RedactF; 40:SearchF; 50:PrintF; 60:b:='e'; End; End; Вывод: Как видно, основную функцию управления взял
Похожие работы
- Практические занятия
- Рефераты
- Рефераты