Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2006, 19:54   #1
mager
Пользователь
 
Регистрация: 12.11.2006
Сообщений: 57
Вопрос что нужно сделать, чтобы при нажатии кнопки запускалась процедура

Привет всем, помогите ответить на вопрос, желательно исходник. Суть проста: допустим при нажать кнопки на клаве "m", выподало сообщение, допустим "привет" (при помощи ShowMessage).
Заранее спасибо.
>>Примечание<<Не ругайтесь, если это очень просто, я Delphi всего неделю изучаю! Поэтому помогите простому челу.
Незнание человека не повод, чтобы над ним издеваться или смеяться, все мы чего-то не знали или не знаем...

Последний раз редактировалось mager; 12.11.2006 в 19:55. Причина: ошибка в тексте
mager вне форума Ответить с цитированием
Старый 12.11.2006, 20:01   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

а форма должна быть, или просто рабочий стол пустой (твоей программы не видно) и она работает?
zetrix вне форума Ответить с цитированием
Старый 13.11.2006, 11:07   #3
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (key='m')or(key='ь') then ShowMessage('hgfhjgfh')
end;

Для получения этого кода, найди в инспекторе объектов OnKeyPress...
Alar вне форума Ответить с цитированием
Старый 13.11.2006, 19:12   #4
mager
Пользователь
 
Регистрация: 12.11.2006
Сообщений: 57
Подмигивание

Спасибо, что помогли, а как при помощи этой же процедуры, при нажатии на "стрелку влево", на клаве, влево двигается картинка, Name=Image1. Только тут нужна процедура OnKeyDown. Не знаю поняли меня или нет, поэтому объясню нормальным языком:
Зажал кнопку "Стрелка влево" и с интервалом в 1 секунду, картинка смещается вдево на две единицы. Как я понял, надо создать переменную положения картинки, при нажатии на кнопку, к этой переменной каждую секунду прибавлять по две единицы.
Уф!!! Кажеться объяснил. Я смысол понимаю, но вот как это реализовать не знаю, Заранее спасибо.
Незнание человека не повод, чтобы над ним издеваться или смеяться, все мы чего-то не знали или не знаем...
mager вне форума Ответить с цитированием
Старый 13.11.2006, 19:39   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

OnKeyDown - это когда кнопка опускаеться вниз. рекомендую для нового хода нажимать на кнопку ещё раз, для тебя это будет проще...

для картинок используй image, координаты там легко определяються, как для любого объекта.
Alar вне форума Ответить с цитированием
Старый 13.11.2006, 19:42   #6
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Ставь два обработчика: OnKeyDown и OnKeyUp На первый влючаем таймер, на второй выключаем.

var x: byte;

procedure TForm1.OnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case key of
37: x := -1; //кнопка влево
39: x := 1; //кнопка вправо
end;
if not Timer 1.Enabled then Timer1.Enabled := True;
end;

procedure Timer1.Timer(Sender : TObject)
begin
Image1.left := Image1.left + 10*x;
end;
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 13.11.2006, 19:47   #7
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
как при помощи этой же процедуры, при нажатии на "стрелку влево", на клаве, влево двигается картинка
Для этого надо сравнивать key с этими константами:
VK_UP - вверх
VK_DOWN - вниз
VK_LEFT - влево
VK_RIGHT - вправо

Для твоего случая (влево):
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (key=VK_LEFT) then Image1.left:=Image1.left-2;
//картинка сдвинется на 2 пикселя влево
end;

Не забудь, что картинка может "выехать" за пределы формы.
zetrix вне форума Ответить с цитированием
Старый 14.11.2006, 19:13   #8
mager
Пользователь
 
Регистрация: 12.11.2006
Сообщений: 57
Восклицание

Ещё раз спасибо, но у меня не получилось это реализовать, использую Борландовский делфи7 , вот код который ввел:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var x: Integer;
begin
x:=Image1.Left;
if key=VK_LEFT Then<здесь останавливается курсор при проверке
begin
Image1.Left:=x-2;
end;
end;
Я использовал код Zetrixa, чуть его изменил, но не пашет, пишет:
"Incompatible types"
Незнание человека не повод, чтобы над ним издеваться или смеяться, все мы чего-то не знали или не знаем...

Последний раз редактировалось mager; 14.11.2006 в 19:16. Причина: ошибка
mager вне форума Ответить с цитированием
Старый 14.11.2006, 19:28   #9
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

для этой функции тебе прийдется использовать мои значения :
37: //кнопка влево
38: //кнопка вверх
39: //кнопка вправо
40: //кнопка вниз
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 14.11.2006, 19:37   #10
mager
Пользователь
 
Регистрация: 12.11.2006
Сообщений: 57
Подмигивание

SuperVisor объясни пожалуйста, вставить, где key=VK_LEFT, вместо VK_LEFT - 37или38или39...
Незнание человека не повод, чтобы над ним издеваться или смеяться, все мы чего-то не знали или не знаем...
mager вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать программу, чтобы она запускалась везде? grenles Общие вопросы C/C++ 3 11.06.2008 21:10
Как сделать так,чтобы при нажатии на кнопку выполнялась процедура? Bolgarin Общие вопросы Delphi 10 03.06.2008 23:48
Как сделать так,чтобы программа запускалась с включением компьютера? InseR Общие вопросы Delphi 24 12.02.2008 18:55
Есть менюшка. Нужно сделать чтобы курсор был самой строкой. Небесный Паскаль, Turbo Pascal, PascalABC.NET 5 03.10.2007 19:46
Как сделать, чтобы программа запускалась один раз, т.е. повторно запустить нельзя??? Kamikadze_666 Безопасность, Шифрование 7 31.07.2007 08:34