Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Убегающая кнопка 
V
    Опции темы
KPEHDEL
Дата 5.6.2010, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Здравствуйте, пытаюсь сделать убегающую кнопку которая будет убегать от мышки.
Делаю так:
Создаю форму, создаю мышку. Мышке пишу такой код:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Enter нажимать нечестно, пользуйся мышкой!');
end;
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  index : Integer;
begin
  index := random(4); //присваиваем переменной случайное значение от 0 до 3

//в зависимости от значения переменной, выбираем действие
case index of
  0: Button1.Left := Button1.Left + Button1.Width; //двигаем кнопку вправо, на значение ширины кнопки
  1: Button1.Left := Button1.Left - Button1.Width; //кнопка влево, на значение ширины
  2: Button1.Top := Button1.Top + Button1.Height; //кнопка вниз, на значение высоты
  3: Button1.Top := Button1.Top - Button1.Height; //кнопка вверх, на значение высоты
end; //case

  {Если кнопка вышла за пределы формы, вернем ее в положение 0}
  if Button1.Left < 0 then Button1.Left := 0; 
  if Button1.Top < 0 then Button1.Top := 0;

  if (Button1.Left + Button1.Width) > Form1.Width then
    Button1.Left := Form1.Width - Button1.Width;

  if (Button1.Top + Button1.Height) > Form1.Height then
    Button1.Top := Form1.Height - Button1.Height;

end;
end.




Выделяет строку:

Код

procedure TForm1.Button1MouseMove(тут ставит курсор)(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);


Не пойму в чём дело, помогите.
PM MAIL WWW ICQ   Вверх
Proxin
Дата 5.6.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 21.6.2008

Репутация: 1
Всего: 3



что такое showmessage?
PM MAIL   Вверх
KPEHDEL
Дата 5.6.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Показывает диалоговое окно. То есть если пользователь попытается нажать кнопку клавишей Enter появляется окно с текстом:"Enter нажимать нечестно, пользуйся мышкой!".
То есть дожно появлятся... До того, как вписал код благодоря которому кнопка должна убегать, появлялось.

Это сообщение отредактировал(а) KPEHDEL - 5.6.2010, 13:04
PM MAIL WWW ICQ   Вверх
Демо
Дата 5.6.2010, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 7
Всего: 50



А что не работает??


--------------------
    
PM MAIL ICQ Skype   Вверх
KPEHDEL
Дата 5.6.2010, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Если бы знал)))... Жму F9, выделяет эту строку procedure TForm1.Button1MouseMove(тут ставит курсор)(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);

PM MAIL WWW ICQ   Вверх
anaxaim
Дата 5.6.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



KPEHDEL
Попробуйте так 

Код

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Randomize;
Button2.Left:=random(590)+5;
Button2.Top:=random(310)+5;
end;

Код намного меньше получается,а смысл почти один и тот же,только кнопка убегает не на свою длину,а рандомно по форме.
Значение в random(x) ставите в зависимости от размера своей формы. smile 
А на счет ошибки,вы бы написали,что за ошибка то?
PM MAIL   Вверх
KPEHDEL
Дата 5.6.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Попробывал. Ошибка в том же месте, выделяется та жа строка.

Вот какая ошибко:
Undeclared indentifier:'Button1MouseMove'
PM MAIL WWW ICQ   Вверх
anaxaim
Дата 5.6.2010, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



Дак вы наверно сами прописываете эти слова)Нужно нажать на кнопку один на форме ,выбрать в свойствах Events свойство OnMouseMove и кликнуть 2 раза ,и эта процедура автоматически перенесется в код smile 
PM MAIL   Вверх
KPEHDEL
Дата 5.6.2010, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



anaxaim, спасибо!) Но всё равно не получается, нажал раз на кнопку(выделил). Открываю вкладку Events, делаю двойной щелчёк на OnMouseMove, но в код ничего не переносится(

PM MAIL WWW ICQ   Вверх
anaxaim
Дата 5.6.2010, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



Нужно нажимать не на само слово,а справа где стрелочка 

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  __________.JPG 23,72 Kb
PM MAIL   Вверх
KPEHDEL
Дата 5.6.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



И всё равно не получается. Щёлкаю по событию, появляется редактор кода, но в редактор кода процедура не добавляется.
Может надо щёлкнуть по события и вбить выше приведённый код?

Это сообщение отредактировал(а) KPEHDEL - 5.6.2010, 17:49
PM MAIL WWW ICQ   Вверх
Данкинг
Дата 5.6.2010, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(KPEHDEL @  5.6.2010,  18:48 Найти цитируемый пост)
Щёлкаю по событию, появляется редактор кода, но в редактор кода процедура не добавляется.

Попробуй то же самое на новом проекте (кто знает, чего ты там с этим намудрил).

Добавлено через 22 секунды
Цитата(Proxin @  5.6.2010,  13:53 Найти цитируемый пост)
что такое showmessage? 

Ни разу не встречал? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
anaxaim
Дата 5.6.2010, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



Уж не знаю тогда почему,у меня ваш код работает нормально.
Вот программа в файле

Присоединённый файл ( Кол-во скачиваний: 34 )
Присоединённый файл  ___________.rar 3,29 Kb
PM MAIL   Вверх
Proxin
Дата 6.6.2010, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 21.6.2008

Репутация: 1
Всего: 3



данкинг,
использую всегда messagebox, в крупных проектах пишу функцию-обёртку для него. showmessage никогда не ипользовал.
PM MAIL   Вверх
KPEHDEL
Дата 6.6.2010, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



anaxaim, вот и я не знаю(
Я не могу скачать программу, скачивается html страница, не мог бы ты куда-нибудь залить? Я был бы очень благодарен.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0895 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.