Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 18

Перемещение Shape стрелками на клавиатуре

25.04.2016, 16:05. Показов 3261. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Помогите пожалуйста.
У меня код на процедуру передвижения Shape по экрану (в приложении) с помощью стрелок на клавиатуре
Pascal
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState;)
begin
if Key = VK_RIGHT then
Shape1.Left := Shape1.left+2 // перемещаем вправо
if Key = VK_LEFT then
Shape1.left := Shape1.left-2; // перемещаем влево
if Key = VK_DOWN then
Shape1.Top := Shape1.Top+2; // перемещаем вверх
if Key = VK_UP then
Shape1.Top := Shape1.Top-2;  // перемещаем вниз
end;
Выдает ошибку Error: method identifier expected на строку
Pascal
1
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState;)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2016, 16:05
Ответы с готовыми решениями:

Перемещение Shape по экрану мышью
Здравствуйте! Помогите пожалуйста! Как можно сделать чтобы shape1 можно было передвигать по экрану таская её мышью?

Перемещение объектов стрелками на клавиатуре
Помогите новичку!!! Есть две программы, в одной программе изображение поляны, в другой простое изображение человечка:) Вопрос такой:...

Перемещение символа по экрану курсорными стрелками на клавиатуре
Написать программу в Masm Emoji кнопок вверх вниз влево вправо должен символ должен перемещаться и в какой-либо точке должна стоять мина ...

12
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.04.2016, 16:25
А Вы это в чем пишете?
1
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 18
25.04.2016, 20:03  [ТС]
Lazarus 1.4
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.04.2016, 20:31
Добавьте в uses LCLType;
1
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 18
26.04.2016, 08:47  [ТС]
Всё равно выдает ошибку при компиляции.
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.04.2016, 08:58
У меня нормально работает. А можете прикрепить сюда архив своего проекта(только без .exe)?
1
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
26.04.2016, 09:05
Лучший ответ Сообщение было отмечено Jury2001 как решение

Решение

Цитата Сообщение от Jury2001 Посмотреть сообщение
method identifier expected на строку
У тебя скорее всего не описан этот метод в описании класса TForm1.
Либо его там нет (такой строки) либо она не так написана.
1
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 18
26.04.2016, 09:05  [ТС]
Нашел ошибку.
Pascal
1
2
3
4
5
6
7
type
 
  { TForm1 }
 
TForm1 = class(TForm)
    Shape1: TShape;
    procedure FormKeyDown(Sender: TObject);
7 строки не было.
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.04.2016, 09:08
Методы нужно не копировать бездумно у дяди, а самому инициировать, тогда все автоматом встанет на свое место и не будет таких ошибок.
1
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 18
26.04.2016, 09:42  [ТС]
Ошибка ушла, все компилирует а Shape1 не двигается.
В чем причина может быть?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.04.2016, 10:28
Лучший ответ Сообщение было отмечено Jury2001 как решение

Решение

Если Вы скопировали это и просто вставили в код, так и будет, нужно инициировать процедуру
Цитата Сообщение от Jury2001 Посмотреть сообщение
TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
для чего зайти в инспектор объектов и на вкладке События кликнуть в окошке против OnKeyDown
1
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
26.04.2016, 10:28
Лучший ответ Сообщение было отмечено Jury2001 как решение

Решение

Цитата Сообщение от Jury2001 Посмотреть сообщение
а Shape1 не двигается.
Потому что ты забыл в Инспекторе Объектов назначить событие )
Мало будет просто прописать его в классе, его еще нужно назначить.
1
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 18
26.04.2016, 13:49  [ТС]
Все работает.
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2016, 13:49
Помогаю со студенческими работами здесь

Управление курсором стрелками на клавиатуре
Написать программу, которая позволяет управлять курсором на текстовом экране. Курсор управляется обычными клавишами управление(стрелками)....

Не работают клавиши со стрелками на клавиатуре
у меня на клавиатуре не работают клавиши со стрелками. не работают ни в windows, ни в ubuntu. все остальные работают. перестали работать...

Вывести объект, чтоб управлялся стрелками на клавиатуре
собсна вот вопрос=) просьба тапками не кидаца, объект может быть любой формы.. помогите пожалуйста :-[:scratch:

Shape на Shape перемещение
Есть форма на котором 2 Shape (ну может и больше)) управление стрелочками, помогите доделать код так чтобы синий Shape ,который...

Перемещение фигуры стрелками
Есть идея, но нужна помощь, можно ли как нить, испоьзуя readkey и keypressed и graph сделать так, чтобы шарик, ползал по нажатию стрелок,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru