Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 22.06.2015, 22:11   #1 (permalink)
Niv
Новичок
 
Регистрация: 22.06.2015
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию PascalABCnet возврат в меню

Помогите сделать возврат в меню после того как программа нарисовала фигуру( по нажатию клавиши энтр)
если вводим не верные значения, то программа сообщает нам текст "вы ошиблись" и выкидывает нас в меню.

Код:
uses
GraphABC;
 
type
Shape = auto class
x, y: integer;
color: GraphABC.Color;
 
procedure Draw(); abstract;
end;
 
Rectangle = class(Shape) 
x1, y1: integer;
 
constructor Create(x, y, x1, y1: integer; color: GraphABC.Color);
begin
self.x := x;
self.x1 := x1;
self.y := y;
self.y1 := y1;
self.color := color;
end;
 
procedure Draw(); override;
begin
brush.Color := color;
GraphABC.Rectangle(x, y, x1, y1);
 
brush.Color := GraphABC.Color.Transparent;
end;
end;
 
Circle = class(Shape)
r: integer;
 
constructor Create(x, y, r: integer; color: GraphABC.Color);
begin
self.x := x;
self.y := y;
self.r := r;
self.color := color;
end;
 
procedure Draw(); override;
begin
brush.Color := color;
GraphABC.Circle(x, y, r);
 
brush.Color := GraphABC.Color.Transparent;
end;
end;
 
Line = class(Shape)
p1,p2,o1,o2: integer;
 
constructor Create( p1,p2,o1,o2: integer; color: GraphABC.Color);
begin
self.p1 := p1;
self.o1 := o1;
self.p2 := p2;
self.o2 := o2;
self.color := color;
end;
 
procedure Draw(); override;
begin
brush.Color := color;
GraphABC.Line( p1,p2,o1,o2);
 
brush.Color := GraphABC.Color.Transparent;
end;
end;
Triangle = class(Shape)
x1, y1, x2, y2: integer;
 
constructor Create(x, y, x1, y1, x2, y2: integer; color: GraphABC.Color);
begin
self.x := x;
self.x1 := x1;
self.x2 := x2;
self.y := y;
self.y1 := y1;
self.y2 := y2;
self.color := color;
end;
 
procedure Draw(); override;
begin
brush.Color := color;
 
var points := new GraphABC.Point[3](new GraphABC.Point(x, y),
new GraphABC.Point(x1, y1),
new GraphABC.Point(x2, y2));
GraphABC.Polygon(points);
brush.Color := GraphABC.Color.Transparent;
end;
end;
function ChooseColor(color_name: string): GraphABC.Color;
begin
case color_name of
'красный': result := GraphABC.Color.Red;
'оранжевый': result := GraphABC.Color.Orange;
'желтый': result := GraphABC.Color.Yellow;
'зеленый': result := GraphABC.Color.Green;
'голубой': result := GraphABC.Color.LightCyan;
'синий': result := GraphABC.Color.Blue;
'фиолетовый': result := GraphABC.Color.Magenta;
 
end;
end;
 
function ChooseFigure(figure_type: string; color: GraphABC.Color): Shape;
begin
case figure_type of
'прямоугольник': result := new Rectangle(500, 400, 170, 170, color);
'квадрат': result := new Rectangle(200, 200, 400, 400, color);
'круг': result := new Circle(320, 250, 100, color);
'линия': result := new Line(300,100,400,100,color);
'треугольник': result := new Triangle(250, 350, 300, 250, 350, 350, color);
end;
end;
begin
writeLn('Программа содержит модуль graph и классы геометрических фигур');
writeLn('Для продолжения нажмите entr');
readln();
 
begin
clearwindow;
writeLn('Напишите один из семи цветов спектора:');
writeLn('');
writeLn('1-красный');
writeLn('2-оранжевый');
writeLn('3-желтый');
writeLn('4-зеленый');
writeLn('5-голубой');
writeLn('6-синий');
writeLn('7-фиолетовый');
writeLn('');
var color_name := ReadString();
var color := ChooseColor(color_name);
clearwindow;
writeLn('Выберите одну их четырех фигур:');
writeLn('');
writeLn('1-треугольник');
writeLn('2-круг');
writeLn('3-квадрат');
writeLn('4-прямоугольник');
writeLn('5-линия');
var figure_type := ReadString();
var figure := ChooseFigure(figure_type, color);
clearwindow;
figure.Draw();
 
end;
end.
Niv вне форума   Ответить с цитированием

Старый 22.06.2015, 22:11
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На форуме есть и похожие темы, вот их список

Возврат в библиотеку "мои документы"
Выпадающее меню

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
pascalabcnet


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:22.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.