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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2008, 20:13   #1
Pang
Пользователь
 
Регистрация: 22.02.2008
Сообщений: 21
Счастье Интерфейс.Хаотично перемещающийся Button

Как сделать чтобы кнопка после запуска формы начала хаотично двигаться по форме?? Подробнее пожайлуста..
Pang вне форума Ответить с цитированием
Старый 12.09.2008, 20:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

По таймеру меняйте кнопке параметры Left и Top, вычисляя их при помощи Random.
Подробнее уж некуда...
mihali4 вне форума Ответить с цитированием
Старый 12.09.2008, 21:44   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от Pang Посмотреть сообщение
Как сделать чтобы кнопка после запуска формы начала хаотично двигаться по форме?? Подробнее пожайлуста..
В виде кода, это будет выглядеть так:
Код:
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
Button1.Top:=Random(Form1.Height);
Button1.Left:=Random(Form1.Width);
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 13.09.2008, 18:05   #4
CyberOrcX
Заблокирован
Форумчанин
 
Регистрация: 27.04.2008
Сообщений: 103
Радость есть еще вариант...

по таймеру:
Вам же надо чтобы кнопка, не убегала за пределы формы?
если так, то попробуйте это:

Код:
 
  procedure TForm1.Timer1Timer(Sender: TObject);
  begin
    Button1.Left:=Random(Main.ClientWidth-Button1.Left);
    Button1.Top:=Random(Main.ClientHeight-Button1.Top);
  end;
CyberOrcX вне форума Ответить с цитированием
Старый 13.09.2008, 18:42   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Вам же надо чтобы кнопка, не убегала за пределы формы?
Пример, предложенный Терраном, вполне с этим справляется.
Не уверены? Освежите в памяти формат команды Random...
В вашем же примере координаты кнопки с каждым шагом будут стремиться к левому верхнему углу формы...
mihali4 вне форума Ответить с цитированием
Старый 13.09.2008, 19:04   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

CyberOrcX наверное имел в виду, что правый и нижний края кнопок не должны по идее выходить за пределы клиентской части формы, но ошибся с кодом:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Button1.Left:=Random(ClientWidth-Button1.Width);
  Button1.Top:=Random(ClientHeight-Button1.Height);
end;
Но я думаю, что под определение "хаотично двигаться по форме" больше подходит следующий код:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  x, y: Integer;
begin
  x := 50 - Random (101);
  y := 50 - Random (101);
  if ((Button1.Left + x) < 0) or ((Button1.Left + x + Button1.Width ) > ClientWidth ) then x := -x;
  if ((Button1.Top  + y) < 0) or ((Button1.Top  + y + Button1.Height) > ClientHeight) then y := -y;
  Button1.Left := Button1.Left + x;
  Button1.Top  := Button1.Top  + y;
end;
Sibedir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RS-232 интерфейс SLIMMUS Общие вопросы Delphi 2 07.09.2008 23:32
Интерфейс [Smarik] Общие вопросы Delphi 16 18.06.2008 10:37
GUI интерфейс ben95 Общие вопросы Delphi 5 01.01.2008 16:57
Интерфейс!!! Oleg Romanchuk Свободное общение 8 25.10.2007 18:13