Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 120
1

Ругается на cays key of. Неизвестное имя key

15.09.2018, 07:07. Просмотров 1173. Ответов 4
Метки нет (Все метки)

Нужно сделать так чтобы по стрелочке вправо срабатывала анимация перемещения квадрата. Но ругается в том месте где case of.


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
uses graphabc;
 
var
x,y: integer;
s: string;
c: char;
p0,h1: string;
defpoison, deffire, defice: integer;
 
 
procedure pole();
begin
setwindowsize(800,600);
for var i:=1 to 11 do
line(50,50*i,550,50*i);
for var j:=1 to 11 do
line(50*j,50,50*j,550);
end;
 
 
begin
x:=50;
y:=50;
case key of
vk_right:
for x:=50 to 100 do
begin
lockdrawing;
window.Clear;
pole();
rectangle(x,y,x+50,y+50);
redraw;
x:=100;
end;
end;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2018, 07:07
Ответы с готовыми решениями:

#1170 - BLOB/TEXT column 'id' used in key specification without a key length
После выполнения этого кода: CREATE TABLE forum_themes( id TINYTEXT, name TINYINT, autor_name...

Ошибка при работе с указателем! (key[0]->pr) x006790b8 {size=3 d=2 key=0x0067dcc8 {0xfdfdfdfd {pr=? }
#ifndef DHEAP_H #define DHEAP_H #include <iostream> #include <locale.h> #include <cmath>...

Violation of Primary key constraint 'PK_otdel'. Cannot insert dupllicate key in object 'dbo.otdel'.
void __fastcall TAddOtdForm::AddOtdButton1Click(TObject *Sender) { int kodotd;...

Что значит данный код, а точнее key:={'+key+'}
begin result:=key; key:= AnsiLowerCase(key); if length(key)>1 then begin...

4
Модератор
61228 / 45892 / 31676
Регистрация: 18.05.2008
Сообщений: 110,526
15.09.2018, 07:38 2
Цитата Сообщение от Андрей1926 Посмотреть сообщение
Но ругается в том месте где case of.
И правильно ругается. Событие нажатия клавиши нужно описывать в процедуре типа
Pascal
1
2
3
4
procedure KeyDown(key:integer);
begin
.......
end;
А в программе вызывается эта процедура так
Pascal
1
2
..............................
OnKeyDown:=KeyDown;
1
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 120
15.09.2018, 12:02  [ТС] 3
Puporev, и
Pascal
1
case key of
тоже в этой процедуре должно быть?

Не можете показать ее использование с моей программой выше?
0
1364 / 732 / 335
Регистрация: 07.04.2017
Сообщений: 3,045
15.09.2018, 12:29 4
Лучший ответ Сообщение было отмечено Андрей1926 как решение

Решение

key это не ключевое слово, а название вашей переменной. У вас нету такой переменной, поэтому паскаль вам это и говорит.
Вот пример проще:
Pascal
1
2
3
4
5
6
7
8
9
begin
  var MyKey := ReadlnInteger;
  
  case MyKey of
    3: writeln('MyKey = 3');
    5: writeln('MyKey = 5');
    else writeln('неизвестное значение MyKey');
  end;
end.
А то что Puporev говорит:
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
uses GraphABC;
 
var
  x, y: integer;
  s: string;
  c: char;
  p0, h1: string;
  defpoison, deffire, defice: integer;
 
 
procedure pole();
begin
  setwindowsize(800, 600);
  for var i := 1 to 11 do
    line(50, 50 * i, 550, 50 * i);
  for var j := 1 to 11 do
    line(50 * j, 50, 50 * j, 550);
end;
 
procedure KeyDown(k: integer);
begin
  y := 50;
  case k of
    vk_right:
      for var x := 50 to 100 do
      begin
        lockdrawing;
        window.Clear;
        pole();
        rectangle(x, y, x + 50, y + 50);
        redraw;
      end;
  end;
end;
 
begin
  OnKeyDown += KeyDown;
end.
1
Модератор
61228 / 45892 / 31676
Регистрация: 18.05.2008
Сообщений: 110,526
15.09.2018, 12:43 5
Андрей1926, Не понял суть Вашей программы, но суть процедуры нажатия клавиши такая.

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
uses graphabc;
var x,y:integer;
procedure pole;
begin
setpencolor(clBlack);
for var i:=1 to 11 do
line(50,50*i,550,50*i);
for var j:=1 to 11 do
line(50*j,50,50*j,550);
end;
procedure KeyDown(key:integer);
begin
case key of
vk_right:if x<500 then 
          begin
          window.Clear;
          pole;
          x:=x+50;
          setpencolor(clRed);
          rectangle(x,y,x+50,y+50);
          redraw;
         end;
end; 
end;
begin
setwindowsize(800,600);
centerwindow;
x:=50;
y:=50;
pole;
setpencolor(clRed);
rectangle(x,y,x+50,y+50);
lockdrawing; 
onkeydown:=KeyDown;
 
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2018, 12:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Зачем нужны primary key и foreign key?
Пожалуйста, объясните самым простым языком зачем эти ключи нужны? Какова их функция? Как они...

Failed to read key Cannot recover key
Всем привет. Ни с того ни с сего выскачила ошибка при попытке подписать АПК. Причем буквально на...

Ругается на неизвестное имя, при создании файла
Добрый день, во время выполнения программы, начал ругаться на неизвестное имя. До того файл делал...

Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ?
У меня получается добавить одним запросом один и тот же UUID в две таблицы. Как одной строкой...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.