Главная Главная страница форума Регистрация Вход
Новые сообщения Участники форума Правила форума Поиск
Страница 2 из 5«12345»
Модератор форума: stalker, Ekz, Admin 
Форум » Все о Delphi » Программа и интерфейс » Затруднения (Чёт не пойму (перемещено))
Затруднения
MegaMenДата: Суббота, 07.02.2009, 20:18 | Сообщение # 16
Ранг 5
Группа: Проверенные
Сообщений: 47
Награды: 0
Репутация: 5
Статус: Offline
Quote (Admin)
Смотри событие onKeyDown

у изображения такого собыия нет.. я думаю надо через форму..

а вот код:

Code

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   case key of
'a' : image1.left := image1.left - 3; // двигаем влево
'd' : image1.left := image1.left + 3; // двигаем вправо
'w': image1.top := image1.top - 3; // двигаем наверх
's': image1.top := image1.top + 3; // вниз
end;
end;

только не забывай что a,w,d,s могут быть и русские и другой раскладки...

вот более рабочий код:

Code

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   case key of
'a','A','ф','Ф' : image1.left := image1.left - 3; // двигаем влево
'd','D','в','В' : image1.left := image1.left + 3; // двигаем вправо
'w','W','ц','Ц': image1.top := image1.top - 3; // двигаем наверх
's','S','ы','Ы': image1.top := image1.top + 3; // вниз
end;
end;


Чтобы добиться цели, надо прежде всего её добиваться.

Сообщение отредактировал MegaMen - Суббота, 07.02.2009, 20:27
 
AdminДата: Суббота, 07.02.2009, 20:24 | Сообщение # 17
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
А я про че!

Не оказываю помощь через личные сообщения и ICQ
 
MegaMenДата: Суббота, 07.02.2009, 20:29 | Сообщение # 18
Ранг 5
Группа: Проверенные
Сообщений: 47
Награды: 0
Репутация: 5
Статус: Offline
ну может человек не поймет и будет искать событие не в том месте.. wink

Добавлено (07.02.2009, 17:29)
---------------------------------------------
p.s. keypress думаю лучше


Чтобы добиться цели, надо прежде всего её добиваться.
 
GaNDyPaCДата: Суббота, 07.02.2009, 20:47 | Сообщение # 19
Ранг 4
Группа: Проверенные
Сообщений: 86
Награды: 0
Репутация: 1
Статус: Offline
Спс!А как сделать чтоб противник двигался сам по себе куда хочет?
Как другой картинке дать движение рандомно?


DELPHI USER
 
MegaMenДата: Суббота, 07.02.2009, 20:53 | Сообщение # 20
Ранг 5
Группа: Проверенные
Сообщений: 47
Награды: 0
Репутация: 5
Статус: Offline
Code

procedure ImgFromTo(Img: TImage; Img2: TImage);
begin
  if Img2.Left > Img.Left then
  Img2.Left := Img2.Left-1
  else
  if Img2.Left < Img.Left then
  Img2.Left := Img2.Left+1;

  if Img2.Top > Img.Top then
  Img2.Top := Img2.Top-1
  else
  if Img2.Top < Img.Top then
  Img2.Top := Img2.Top+1;
end;

Code
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  ImgFromTo(Image1,Image2);
end;

я думаю ты понял что куда

Добавлено (07.02.2009, 17:50)
---------------------------------------------
p.s. тут одна картинка движется к другой..

Добавлено (07.02.2009, 17:53)
---------------------------------------------
чтобы рандомно, надо сделать так:

Code
procedure ImgRandom(Img: TImage);  
begin  

   Img.Left := Img.Left + Random(3)-6;
   Img.Top := Img.Top+ Random(3)-6;

end;  

procedure TForm1.Timer1Timer(Sender: TObject);  
begin  
   ImgRandom(Image1);  
end;


Чтобы добиться цели, надо прежде всего её добиваться.
 
GaNDyPaCДата: Суббота, 07.02.2009, 21:03 | Сообщение # 21
Ранг 4
Группа: Проверенные
Сообщений: 86
Награды: 0
Репутация: 1
Статус: Offline
Ошибка cry
[Error] Unit2.pas(143): Undeclared identifier: 'FormKeyPress'
[Error] Unit2.pas(143): ';' expected but '(' found
[Error] Unit2.pas(146): ';' expected but ')' found
[Error] Unit2.pas(149): Undeclared identifier: 'image9'


DELPHI USER
 
AdminДата: Суббота, 07.02.2009, 21:06 | Сообщение # 22
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
MegaMen, не "-6" а "-1".
Поясню. В таком варианте будет всегда двигаться влево и вверх. Максимум может выпасть 2 если от 2 отнять 1 (в моем варианте) то будет 1. Если выпадет 0 то будет -1. Вот и будет то туда то сюда дергаться. smile

Randomize не забуть вызвать. Чтобы инициализировать генератор случайных чисел. Иначе выпадать будет одно и тоже.


Не оказываю помощь через личные сообщения и ICQ
 
AdminДата: Суббота, 07.02.2009, 21:07 | Сообщение # 23
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
GaNDyPaC, а ты че просто вставил процедуру?

Не оказываю помощь через личные сообщения и ICQ
 
GaNDyPaCДата: Суббота, 07.02.2009, 21:09 | Сообщение # 24
Ранг 4
Группа: Проверенные
Сообщений: 86
Награды: 0
Репутация: 1
Статус: Offline
Нет я тыкал 2 раза на форму.
Пробую код.Тоесть var key:char;
И потом case key of
Но при этом запускаеться.Я нажимаю влево,вправо ни чего нет.....


DELPHI USER
 
MegaMenДата: Суббота, 07.02.2009, 21:15 | Сообщение # 25
Ранг 5
Группа: Проверенные
Сообщений: 47
Награды: 0
Репутация: 5
Статус: Offline
Quote (Admin)
MegaMen, не "-6" а "-1".
Поясню. В таком варианте будет всегда двигаться влево и вверх. Максимум может выпасть 2 если от 2 отнять 1 (в моем варианте) то будет 1. Если выпадет 0 то будет -1. Вот и будет то туда то сюда дергаться.

я на бум циферки написал...))

Quote (GaNDyPaC)
Ошибка
[Error] Unit2.pas(143): Undeclared identifier: 'FormKeyPress'
[Error] Unit2.pas(143): ';' expected but '(' found
[Error] Unit2.pas(146): ';' expected but ')' found
[Error] Unit2.pas(149): Undeclared identifier: 'image9'

в Object Inspector, в вкладке Events (События) ищешь OnKeyPress. Кликаешь 2 раза, создается процедура. Туда и надо.

Добавлено (07.02.2009, 18:13)
---------------------------------------------

Quote (GaNDyPaC)
var key:char;

эта переменная идет вместе с процедурой OnKeyPress

Добавлено (07.02.2009, 18:15)
---------------------------------------------
p.s. ты когда тыкаешь 2 раза на форму, создаешь процедуру OnFormCreate, а надо OnKeyPress//


Чтобы добиться цели, надо прежде всего её добиваться.
 
AdminДата: Суббота, 07.02.2009, 21:16 | Сообщение # 26
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
/publ/28-1-0-131
Тут описания основных свойств и событий формы. Может быть требуется объяснение зачем нужны события и как с ними обращаться? Про я думаю, что это понятно. Сам непомню, вроде когда изучал было понятно. Или это сейчас так кажется! smile


Не оказываю помощь через личные сообщения и ICQ
 
MegaMenДата: Суббота, 07.02.2009, 21:30 | Сообщение # 27
Ранг 5
Группа: Проверенные
Сообщений: 47
Награды: 0
Репутация: 5
Статус: Offline
Quote (Admin)
Может быть требуется объяснение зачем нужны события и как с ними обращаться?

как видно требуются happy

2GaNDyPaC

почитай.. как прочитаешь попробуй, если не получится отпишись что не получается и каковы твои действия...


Чтобы добиться цели, надо прежде всего её добиваться.
 
GaNDyPaCДата: Суббота, 07.02.2009, 22:30 | Сообщение # 28
Ранг 4
Группа: Проверенные
Сообщений: 86
Награды: 0
Репутация: 1
Статус: Offline
Окей.Просто я delphi учусь так,что много спрашиваю и пробую.А учителя в которые препадают мне pascal не знаю,а точнее плохо знают Delphi.Они больше на c++ сидят.....
Короче попробую....


DELPHI USER
 
AdminДата: Суббота, 07.02.2009, 22:46 | Сообщение # 29
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
Это хорошо что спрашиваешь! Не будеш спрашивать ничего и не узнаешь. Помаленьку наберешься опыта, потом легче самому разбираться будет.

Не оказываю помощь через личные сообщения и ICQ
 
MegaMenДата: Воскресенье, 08.02.2009, 19:55 | Сообщение # 30
Ранг 5
Группа: Проверенные
Сообщений: 47
Награды: 0
Репутация: 5
Статус: Offline
Quote (GaNDyPaC)
А учителя в которые препадают мне pascal не знаю,а точнее плохо знают Delphi.Они больше на c++ сидят.....

а что же они вас c++ не учат? ведь когда знаешь хотябы один язык, второй уже учится без проблем.. Проверено...

останется узнать только структуру программы, типы, объявления и синтаксис.. А остальное ты уже как-бы знаешь.. Все языки это связывает..


Чтобы добиться цели, надо прежде всего её добиваться.
 
Форум » Все о Delphi » Программа и интерфейс » Затруднения (Чёт не пойму (перемещено))
Страница 2 из 5«12345»
Поиск:

Copyright DelphiDevelop.ru © 2008-2018
Хостинг от uCoz