Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/47: Рейтинг темы: голосов - 47, средняя оценка - 4.51
9 / 9 / 1
Регистрация: 28.02.2013
Сообщений: 208
1

Очистить вывод в окне graphabc

10.12.2014, 21:07. Показов 9534. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Салют народ! Вот сел за лабораторную работу и сходу не получается. Замутил простенькую менюшку бесконечным циклом и мне нужно перерисовывать текст каждый раз, когда я что-то выбираю в меню. Чтобы не получилось как на первом скриншоте. Я сделал clearwindow - результат на втором скрине.
Очистить вывод в окне graphabc


Очистить вывод в окне graphabc
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2014, 21:07
Ответы с готовыми решениями:

System.Windows.Forms+GraphABC в одном окне
Здравствуйте, есть графическая программа написанная в обычном pascal abc с использованием модуля...

Можно ли определить, находится ли курсор в окне GraphABC в PascalABC.net?
Хотел написать следующее за курсором окно, но столкнулся с такой проблемой-как определить,...

При нажатии лкм/пкм в окне graphABC считывались координаты пикселя
СОЗДАЛ ТРИ ТЕМЫ НИКТО НЕ ОТВЕЧАЕТ! ЧЕ НАФИГ ЗА ФОРУМ ТАКОЙ?! мне нужно, что бы при нажатии...

Вывод таблицы с GraphABC
Есть трехмерный массив (12x7x5(или 6) - календарь), вывожу без подключения GraphABC выводит все...

11
26 / 26 / 42
Регистрация: 25.03.2014
Сообщений: 233
10.12.2014, 22:26 2
Если я не ошибаюсь (никогда не работал с graphabc)
Pascal
1
clrscr();
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2014, 11:01 3
Если меню текстовое, то для чего graphAВC?
0
9 / 9 / 1
Регистрация: 28.02.2013
Сообщений: 208
11.12.2014, 11:16  [ТС] 4
Цитата Сообщение от IceCortez Посмотреть сообщение
Если я не ошибаюсь (никогда не работал с graphabc)
это для модуля Crt, который несовместим почему-то с модулем GraphABC.

Добавлено через 14 секунд
Цитата Сообщение от Puporev Посмотреть сообщение
Если меню текстовое, то для чего graphAВC?
Нужно будет рисовать
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2014, 11:20 5
Цитата Сообщение от goremukin Посмотреть сообщение
это для модуля Crt, который несовместим почему-то с модулем GraphABC.
С какой это стати? Вот пример.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
uses graphABC,crt;
type point=record
           x,y:integer;
           end;
procedure menu;
begin
clearwindow;
setbrushstyle(bsClear);
textout(10,0,'Выберите действие:');
textout(10,20,'1-Красный квадрат');
textout(10,40,'2-Синий круг');
textout(10,60,'3-Зеленый треугольник');
textout(10,80,'Другое кроме Enter выход');
end;
var w:char;
    xc,yc:integer;
    p:array[1..4] of point;
begin
hidecursor;
xc:=windowwidth div 2;
yc:=windowheight div 2;
repeat
menu;
w:=readkey;
case w of
'1':begin
    clearwindow;
    setpencolor(clRed);
    setbrushcolor(clRed);
    rectangle(xc-100,yc-100,xc+100,yc+100);
    readln;
    menu
    end;
'2':begin
    clearwindow;
    setpencolor(clBlue);
    setbrushcolor(clBlue);
    circle(xc,yc,100);
    readln;
    menu
    end;
'3':begin
    clearwindow;
    setpencolor(clGreen);
    setbrushcolor(clGreen);
    p[1].x:=xc+round(100*cos(pi/2));
    p[1].y:=yc-round(100*sin(pi/2));
    p[2].x:=xc+round(100*cos(7*pi/6));
    p[2].y:=yc-round(100*sin(7*pi/6));
    p[3].x:=xc+round(100*cos(11*pi/6));
    p[3].y:=yc-round(100*sin(11*pi/6));
    p[4]:=p[1];
    polygon(p,4);
    readln;
    menu
    end;
else if w<>#13 then exit
end;
until not(w in ['1'..'3',#13])
end.
0
9 / 9 / 1
Регистрация: 28.02.2013
Сообщений: 208
11.12.2014, 12:00  [ТС] 6
Цитата Сообщение от Puporev Посмотреть сообщение
С какой это стати? Вот пример.
Проблема как и тут:
Конфликт модулей crt и GraphABC

Программа с graphabc и crt тупо не запускается. скачал среду тут:
http://pascalabc.net/
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2014, 12:17 7
Лучший ответ Сообщение было отмечено goremukin как решение

Решение

pascal abc.net
а какого тогда создаешь тему в разделе простого АВС, а не здесь?
https://www.cyberforum.ru/pascalabc-net/

Добавлено через 49 секунд

Не по теме:

Лишь бы мозги пудрить своей тупостью...



Добавлено через 12 минут
Используйте процедуру procedure KeyDown(Key: integer);
Пример, а также виртуальные коды клавиш есть в Справке.
1
9 / 9 / 1
Регистрация: 28.02.2013
Сообщений: 208
11.12.2014, 12:25  [ТС] 8
Цитата Сообщение от Puporev Посмотреть сообщение
а какого тогда создаешь тему в разделе простого АВС, а не здесь?
Вот введи в гугле Pascal ABC и попробуй найти на первой странице простой Pascal ABC. Первая мысль, что это обычный паскаль с возможностью использовать .net
Отдельный раздел не увидел, извините.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2014, 13:01 9
Цитата Сообщение от goremukin Посмотреть сообщение
Отдельный раздел не увидел, извините.
Когда открываешь раздел Паскаль видишь это
Очистить вывод в окне graphabc


А Вот переделанный код моего примера.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
uses graphABC;
var xc,yc,key:integer;
    p:array of point;
procedure menu;
begin
clearwindow;
setbrushcolor(clWhite);
textout(10,0,'Выберите действие:');
textout(10,20,'1-Красный квадрат');
textout(10,40,'2-Синий круг');
textout(10,60,'3-Зеленый треугольник');
textout(10,80,'4-Выход');
end;
 
procedure rect;
begin
clearwindow;
setpencolor(clRed);
setbrushcolor(clRed);
setbrushstyle(bsSolid);
rectangle(xc-100,yc-100,xc+100,yc+100);
end;
 
procedure krug;
begin
clearwindow;
setpencolor(clBlue);
setbrushcolor(clBlue);
circle(xc,yc,100);
end;  
 
procedure trg;
begin
clearwindow;
setpencolor(clGreen);
setbrushcolor(clGreen);
setlength(p,4);
p[0].x:=xc+round(100*cos(pi/2));
p[0].y:=yc-round(100*sin(pi/2));
p[1].x:=xc+round(100*cos(7*pi/6));
p[1].y:=yc-round(100*sin(7*pi/6));
p[2].x:=xc+round(100*cos(11*pi/6));
p[2].y:=yc-round(100*sin(11*pi/6));
p[3]:=p[0];
polygon(p);
end;
 
procedure KeyDown(Key: integer);
begin
case Key of
VK_Return:menu;
VK_NumPad1:rect;
VK_NumPad2:krug;
VK_NumPad3:trg;
VK_NumPad4:halt
end;
end;
 
begin
xc:=windowwidth div 2;
yc:=windowheight div 2;
menu;
OnKeyDown := KeyDown;
end.
1
9 / 9 / 1
Регистрация: 28.02.2013
Сообщений: 208
11.12.2014, 13:09  [ТС] 10
Возможно ли по коду узнать среду программирования?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Program Graphik ;
Uses
  Graph , Crt ;
Type
  Mas1=array[1..50] of Real ;
  Mas2=array[1..50] of String[ 150 ] ;
Const
  Z1=20; {количество данных}
  mas : array[1..8] of string = ('Dub','Bereza','Iva','Topol','Yasen','Lipa','Sosna','Klen');
Var
  Y:MAS2;
  Driver , Mode : Integer ;
  Z: array[ 1..Z1 ] of Integer ;
  T , l : String[ 150 ] ;
  A , f: array[ 1..Z1 ] of real;
  Max , Sum : Real ;
  Y0 , Y1 , Y2 , H , PR , X , RX ,Osn , Ras , i , N , Y3 , Y4 :Integer ;
 
 
{Круговая диаграмма}
Procedure Sect ;
  Begin
    ClearDevice ;
    OutTextXY( 100 , 30 , 'Krugovaya diagramma znacheniy' ) ;{расчет общей суммы}
    Sum := 0 ;
    For i := 1 to N do
      Sum := Sum + A[ i ] ;
    For i:=1 to N do
      f[ i ] := ( A[ i ]*100/sum ) ;
    For i:=1 to N do
      Z[ i ] := Round( A[ i ]*360/Sum ) ;
    Y0 := 0 ;
    {рисование сектора}
    For i := 1 to N do
      begin
        SetFillStyle( 2 , i + 1 ) ;
        PiesLice( 325 , 190 , Y0 , Y0 + Z[ i ] , 140 ) ;
        Y0 := Y0 + Z[ i ] ;
      end ;
    Y1 := 50 ;
    Y2 := 70 ;
    Y3 :=500 ;
    Y4 :=540 ;
    For i:=1 to N do
      begin
        SetFillStyle( 2 , i + 1 ) ;
        Bar3d( 20 , Y1 , 60 , Y2 , 5 , True ) ;
        Str( A[ i ] : 6 : 1 , T ) ;
        OutTextXY( 70 , Y1 + 10 ,  T ) ;
        Str( f[ i ] : 6 : 2 , l );
        OutTextXY( 120 , Y1 + 10 , '-' + l + '%');
        Y1 := Y1 + 30 ;
        Y2 := Y2 + 30 ;
        SetFillStyle( 2 , i + 1 ) ;
        Bar3d( Y3 , Y1 , Y4 , Y2 , 5 , True ) ;
        Str( A[ i ] : 6 : 1 , T ) ;
        OutTextXY( Y4+10 , Y1 + 10 ,  Y[i]) ;
      end ;
     ReadLn ;
  End;
 
 
{Столбчатая диаграмма}
Procedure Stol ;
  Begin
    ClearDevice ;
    OuttextXY( 100 , 30 ,'Sootnoshenie rosta' ) ;
    X := 50 ;
    RX := 30 ;             {ширина столбика}
    RAS := Round( 400 / n ) ;  {расстояние между столбиками}
    OSN := 280 ;           {координата основания}
    SetFillStyle( 3 , 1 ) ;
    Bar3d( X , OSN , X + RAS*( N - 1 ) + RX , OSN + 35 , 10 , True ) ;
    SetTextStyle( 4 , 0 , 2 ) ;
    PR := 0 ;
   { OutTextXY( 100 , 20 , ' ' ) ;}
    Max := A[ 1 ] ;
    For i := 1 to N do
      If A[ i ] > max then max := A[ i ] ;
        sum := 0 ;
    For i := 1 to N do
      Sum := Sum + A[ i ] ;
    For i := 1 to N do
      f[ i ] := A[ i ]*100/Sum ;
    For i := 1 to N do
      begin
        OutTextXY( X + 2 , osn + 5 , Y[ i ] ) ;
        H := Trunc( A[ i ]*200/max ) ;    {высота}
        SetFillStyle( 9 , i + 11 ) ;
        Bar3d( X , 280 - H , X + RX , OSN , 10 , Topon ) ;
        Str( a[ i ] : 6 : 1 , t ) ;
        OutTextXY( X , 280 - H - 33 , T ) ;
        SetTextstyle( 4 , 0 , 1 ) ;
        Str( f[ i ] : 6 : 2 , l ) ;
        OutTextXy( X - 10 , 280 - H - 20 , l + '%' ) ;
        X := X + RAS ;
      end ;
    ReadLn ;
  End ;
 
 
Begin
  ClrScr ;
  Write( ' Введите число сравниваеммых элеметов:':30 ) ;
  Readln( N ) ;
  Writeln( 'Введите высоты деревьев':30 ) ;
  For i := 1 to N do
    begin
      Write ( mas[i], '='  ) ;
      Readln( A[ i ] ) ;
    end ;
  readln;
 { For i := 1 to N do
    begin
      Writeln;
      Write( ' ' , i ,')',Y[i], '=');
      Readln(A[i]);
    end;
  readln;}
  Driver := Detect ;
  InitGraph( Driver , Mode ,'' ) ;
  Stol ;
  Sect ;
  CloseGraph ;
End.
Как я понимаю, модуля Graph в abc нету?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2014, 13:11 11
Естественно, это Турбо Паскаль, запустится также во Фри Паскале.
1
9 / 9 / 1
Регистрация: 28.02.2013
Сообщений: 208
11.12.2014, 13:12  [ТС] 12
Я понял, спасибо тебе большое.
0
11.12.2014, 13:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2014, 13:12
Помогаю со студенческими работами здесь

[WPF] Как в DataGrid очистить ячейку с форматом Decimal в окне пользователем?
Здравствуйте, начал изучать WPF по разнообразным урокам, но никак не могу найти и понять как...

Как создать такое в делфи в окне паскаля,там должны быть кнопки очистить выполнить и выход?
Дано число. Вывести цифры исходного числа через пробел. Найти минимальную цифру, используемую в...

Вывод в одном окне
как вывести в одном окне 2 плоскости?

Вывод результата в окне
вопрос№1 как что я делаю не так, вопрос№2 как сделать, чтобы результат выводился в окне result?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru