Написал код в Паскале, но хочется красивости. Делфи для этого подходит? Сам паскалевский код не надо переписывать (коды аналогичны)? Как создать такой интерфейс: по центру вставить рисунок jpeg или png, или в каком формате удобнее. Далее два окна, куда вводятся значения, окно с результатом и кнопка выполнить.
Делфи вижу впервые. Вот часть программы:
program opros; uses crt; var Q1,Q2,Q3,CB1,CB2,n,m,i,k,p,j,s1,s2,s3,f,g,h:byte; x,y,z:set of byte; U1,U2,U3,Y1,Y2:integer; begin clrscr; writeln(‘Y1=’); readln(Y1); writeln(‘Y2=’); readln(Y2); if Y1>=Y2 or Y1>=380 or Y2>=380 then writeln(‘YSTAVKI NEKORREKTNI’) else
и т.д. Как создать окна, куда будет вводиться значения Y1 Y2? Как в программе присвоить, что одно окно У1, а второе У2? Как создать кнопку Выполнить?
Код к задаче: «Создание интерфейса, имея код Pascal»
Листинг программы
procedure Form1.button1_Click(sender: Object; e: EventArgs); var Q1,Q2,Q3,CB1,CB2,n,m,i,k,p,j,s1,s2,s3,f,g,h:byte; x,y,z:set of byte; U1,U2,U3,Y1,Y2:integer; begin EditResult.Text := »; Y1 := StrToInt(textBox1.Text); Y2 := StrToInt(textBox2.Text); if (Y1>=Y2) or (Y1>=380) or (Y2>=380) then ShowMessage(‘YSTAVKI NEKORREKTNI’) else begin randomize; x:=[]; for i:=1 to 5 do begin repeat n:=random(5)+1; until not (n in x); x:=x+[n]; case n of 1:Q1:=random(2); 2:Q2:=random(2); 3:Q3:=random(2); 4:CB1:=random(2); 5:CB2:=random(2); end; end; begin randomize; y:=[]; for j:=1 to 3 do begin repeat k:=random(3)+1; until not (k in y); y:=y+[k]; case k of 1:s1:=random(2); 2:s2:=random(2); 3:s3:=random(2); end; end; begin randomize; z:=[]; for h:=1 to 3 do begin repeat f:=random(3)+1; until not (f in z); z:=z+[f]; case f of 1:U1:=random(381); 2:U2:=random(381); 3:U3:=random(381); end; end; U1:=strtoint(textBox15.Text); U2:=strtoint(textBox16.Text); U3:=strtoint(textBox17.Text); if Q1=0 then textBox3.Text:=(‘otkluchen’) else textBox3.Text:=(‘vkluchen’); if Q2=0 then textBox4.Text:=(‘otkluchen’) else textBox4.Text:=(‘vkluchen’); if Q3=0 then textBox5.Text:=(‘otkluchen’) else textBox5.Text:=(‘vkluchen’); if CB1=0 then textBox6.Text:=(‘otkluchen’) else textBox6.Text:=(‘vkluchen’); if CB2=0 then textBox7.Text:=(‘otkluchen’) else textBox7.Text:=(‘vkluchen’); if s1=0 then textBox18.Text:=(‘ispraven’) else textBox18.Text:=(‘neispraven’); if s2=0 then textBox19.Text:=(‘ispraven’) else textBox19.Text:=(‘neispraven’); if s3=0 then textBox20.Text:=(‘ispraven’) else textBox20.Text:=(‘neispraven’); end; end.
Источник: studassistent.ru
УРОК 3-4. Проектирование интерфейса оконного приложения (11 класс)
Создание графических интерфейсов в Pascal
Любая хорошая программа обязательно должна обладать графическим интерфейсом, который позволяет пользователям легко и удобно работать с ней. Если при разработке приложений для windows это не вызывает трудностью, то при программировании консольных программ может вызвать проблемы. К счастью, существует специальный модуль Graph, содержащий все самые необходимые функции. Кроме того, данный модуль поддерживает несколько шрифтов, которые можно ориентировать по горизонтали или вертикали, а также позволяет использовать различные типы линий и виды закрашивания.
Pascal Урок 11. Простое приложение Windows Forms
- Преобразовать файл драйвера из формата BGI в формат OBJ. Для этого можно использовать утилиты BINOBJ или BGIOBJ
- Зарегистрировать графический драйвер, поместив вызов функции RegisterBGIDriver перед процедурой InitGraph.
- При формировании программа собрать с ней *.OBJ файлы для зарегистрированных драйверов
В случаи если при инициализации графической системы происходит ошибка её причину можно узнать при помощи функции GraphResult, которая возвращает код ошибки.
После инициализации можно приступать к созданию графического интерфейса. При этом следует учитывать, что начало системы координат располагается в левом верхнем углу. Ось Х направлена вправо, а ось Y вниз.
Теперь вы можете создавать любой графический интерфейс своей программы. Однако не стоит забывать, что перед тем как завершить работу своей программы необходимо освободить память занимаемую графическим драйвером. Для этого необходимо воспользоваться функцией CloseGraph. Данная функция имеет только одно ограничение – это необходимость находиться в графическом режиме при её использовании, поэтому если в процессе работы программы вы переключались в текстовый режим, вам необходимо предусмотреть возможность восстановления графического режима перед использованием функции CloseGraph. Для перехода между режимами можно использовать функции RestoreCrtMode — переключение в текстовый режим и SetGraphMode — возврат в графический режим, при этом следует учитывать, что весь ранее подготовленный интерфейс будет стерт.
Источник: tpdn.ru
Методы создания пользовательского интерфейса
Аннотация: Дружественный интерфейс и методы его создания. Возможности текстового режима. Простейшая графика.
Любая программа , написанная на языке Pascal , может работать с экраном в двух режимах: в текстовом или в графическом . По умолчанию всегда используется текстовый режим .
Текстовый режим
В текстовом режиме единицей вывода информации служит символ. На экране каждый символ занимает одно знакоместо — прямоугольный участок размером 8х8 пикселей (зерен экрана). Во весь экран помещается 80х25 знакомест .
Курсор (мигающий прямоугольник ) помечает то место на экране, куда по умолчанию будет осуществлен вывод очередного символа , — текущую позицию . Для определения текущей позиции курсора предназначена сетка координат, мысленно накладываемая на экран. Левое верхнее знакоместо имеет координаты (1,1), правое верхнее — (1,80), левое нижнее — (25,1) и правое нижнее — соответственно (25,80).
Рассмотренные в лекции 6 процедуры write() и writeln() работают именно с текстовым экраном: они выводят информацию посимвольно, начиная с текущей позиции курсора .
Если при выводе информации в текстовый файл любой символ записывается туда в виде своего изображения, то при выводе на экран существуют четыре исключения из этого правила:
- Вместо изображения символа #7 компьютер издаст звуковой сигнал.
- Вместо изображения символа #8 курсор на экране будет передвинут на одну позицию влево.
- Вместо изображения символа #10 курсор на экране будет передвинут на одну строку вниз.
- Вместо изображения символа #13 курсор на экране будет передвинут на начало текущей строки.
Остальные символы выводятся на экран в «правильном» виде.
Процедуры модуля Crt
В предыдущей лекции мы уже упоминали, что модуль Crt , входящий в состав стандартных библиотек языка Pascal, содержит средства для работы с экраном в текстовом режиме .
Для того чтобы сделать работоспособными все описанные ниже процедуры и функции, ваша программа должна подключить стандартный модуль Crt :
Активная область ввода / вывода
Процедура Window(x1,y1,x2,y2: byte) создаст на экране окно с координатами левого верхнего угла в точке (x1,y1) и координатами правого нижнего угла в точке (x2,y2) . Теперь активная область экрана будет ограничена этим окном. Текущие координаты курсора будут отсчитываться не от левого верхнего угла экрана, а от левого верхнего угла этого окна.
Очистка
Процедура ClrScr очистит весь экран (или активное окно); курсор будет помещен в верхний левый его угол.
Процедура ClrEol очистит текущую строку, начиная с текущей позиции курсора и до правого края экрана (окна).
Процедура DelLine удалит строку, в которой находится курсор.
Процедура InsLine очистит текущую строку целиком. Курсор останется на прежней позиции.
Цвета
Процедура TextBackground(color: byte) установит цвет фона.
Процедура TextColor(color: byte) установит цвет выводимого текста.
Замечание: Вместо номера цвета возможно использовать соответствующую константу (см. табл. 14.1).
black | Черный | darkgray | 8 | Темно-серый | |
blue | 1 | Синий | lightblue | 9 | Ярко-синий |
green | 2 | Зеленый | lightgreen | 10 | Ярко-зеленый |
cyan | 3 | Голубой | lightcyan | 11 | Ярко-голубой |
red | 4 | Красный | lightred | 12 | Розовый |
magenta | 5 | Фиолетовый | lightmagenta | 13 | Ярко-фиолетовый |
brown | 6 | Коричневый | yellow | 14 | Желтый |
lightgray | 7 | Светло-серый | white | 15 | Белый |
Помимо этого, можно использовать константу blink = 128 (мерцание).
Звук
Процедура Sound (hz: word) включит звуковой сигнал с частотой hz герц.
Процедура NoSound выключит звуковой сигнал.
Позиционирование
Процедура GotoXY(x,y: byte) переместит курсор в заданную позицию в пределах текущего окна (экрана).
Функция WhereX: byte вычислит положение курсора в текущем окне (или на экране): его горизонтальную составляющую. Напомним, что координата X отсчитывается от левого края экрана (окна).
Функция WhereY : byte вычислит положение курсора в текущем окне (или на экране): его вертикальную составляющую. Напомним, что координата Y отсчитывается от верхнего края экрана (окна).
Ожидание
Процедура Delay (ms: word) приостановит исполнение программы на ms миллисекунд.
Функция KeyPressed : boolean отслеживает нажатия клавиш (на клавиатуре).
Функция ReadKey: char возвращает код символа , чья клавиша (или комбинация клавиш) была нажата.
Источник: intuit.ru