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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.02.2012, 11:43   #1
alex 2000
Пользователь
 
Регистрация: 06.02.2012
Сообщений: 16
По умолчанию проблема

помогите,не могу понять ошибку,по логике мой шар (TShape1)должен рекашетить от всех стенок а у меня только от боковых

Код:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm4 = class(TForm)
    Shape1: TShape;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
  procedure shar();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;
  posx, posy, velx, vely: single;
implementation

{$R *.dfm}

procedure TForm4.FormCreate(Sender: TObject);
begin
posx:=1;
posy:=1;
velx:=2;
vely:=3;
end;

procedure TForm4.shar;
begin
 posx:=posx+velx;
 posy:=posy+velx;

 if posx> clientwidth -shape1.Width then
 velx:=-velx;

  if posx<0 then
 velx:=-velx;

  if posy> clientheight -shape1.Width then
 vely:=-vely;

  if posy<0 then
 vely:=-vely;

 shape1.Left:=round(posx);
 shape1.Top:=round(posy);


end;

procedure TForm4.Timer1Timer(Sender: TObject);
begin
shar;
end;

end.

Последний раз редактировалось ACE Valery; 06.02.2012 в 20:49.
alex 2000 вне форума
Старый 06.02.2012, 11:55   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Код:
posx:=posx+velx;
posy:=posy+velx;
во второй строке вместо vely написано velx. Копипаст — зло
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума
Старый 06.02.2012, 12:48   #3
alex 2000
Пользователь
 
Регистрация: 06.02.2012
Сообщений: 16
По умолчанию

это я сам сделал по видео урокам с сайта www.delphiexpert.ru
а вообще спасибо все заработоло
alex 2000 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37