Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Клавиатура, прозрачность и др. вопросы

Автор: Vinchkovsky 9.04.2007 16:26

Первый раз создаю игрушку на Дельфи, и возникло несколько вопросов, с которыми я не встречался прежде:
1) Как сделать обработчик нажатий клавиш? То есть, жму влево- обьект движется влево и т.п.
Использую код типа:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if Key = VK_RIGHT then
SpS1.Left:=Speed.Value+SpS1.Left;
if Key = VK_LEFT then
SpS1.Left:=SpS1.Left-Speed.Value;

end;


c keypress, keyup, keydown, но у меня лишь меняется фокус формы.

2) Как сделать прозрачность некоторых частей рисунков? В общем, есть три варианта:
а) Сделать маску (прочитал в интернете);
б) Анализировать пиксели фона; (сам придумал)
в) Использовать векторную графику; (пишет в книге)
Может есть какой-нибуть более простой способ? Если нет, прошу обьяснить вариант в) (подсказать редактор, нюансы и т.д.)

В чем суть игры: справа - большое окно с фоном, который меняется с уровнями, снизу и сверху - всякие кораблики lol.gif , справа - панель с клавишами управления и панель с настройками.
ОЧень надеюсь на помощь wink.gif

Автор: volvo 9.04.2007 16:52

Цитата
у меня лишь меняется фокус формы.
Form1.KeyPreview, конечно в True не установил? Установи, тогда нажатия клавиш будут обрабатываться... Больше ничего сказать не могу, потому что неизвестно, как именно ты перерисовываешь объект потом...

Цитата
Как сделать прозрачность некоторых частей рисунков?
По-моему, в http://forum.pascal.net.ru/index.php?showtopic=6361 было что-то с этим связанное...

Автор: Vinchkovsky 9.04.2007 18:03

Цитата
Form1.KeyPreview, конечно в True не установил? Установи, тогда нажатия клавиш будут обрабатываться... Больше ничего сказать не могу, потому что неизвестно, как именно ты перерисовываешь объект потом...

Спасибо, первый раз работаю с клавиатурой.
Цитата
По-моему, в Drkb было что-то с этим связанное...

Разобрался на примере "Самолет летит по небу"
____________________________________________
Еще вопросик - это фича или глюк : иногда при редактировании кода, когда дописываю дополнительный текст всередине какой-нибудь строки, он не "вставляется", "передвигая" то, что за ним; а "заменяет" тот код, что идет далее. Помогает лишь перезапуск. wink.gif

Автор: volvo 9.04.2007 18:29

Это фича... Чтобы ее отключить, достаточно нажать на кнопку Insert на клавиатуре (т.е. перейти из режима замещения в режим вставки).