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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 19:32   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы исправили то что я сказал?
если у вас AV вылетают, то не будет ничего рисоватся
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.10.2009, 19:38   #22
-COREY-
Пользователь
 
Аватар для -COREY-
 
Регистрация: 19.04.2009
Сообщений: 50
По умолчанию

заработало всё.Спасибо Вам всем!
-COREY- вне форума Ответить с цитированием
Старый 12.10.2009, 22:12   #23
-COREY-
Пользователь
 
Аватар для -COREY-
 
Регистрация: 19.04.2009
Сообщений: 50
По умолчанию

Фигура почему-то не хочет перемещаться.Посмотрите где ошибка,пожалуйста..
Код:
{сам ход}
procedure TForm1.HorseMove;
begin
 w_h1:=THorse.Create(1,7,'white_horse.bmp',CoordToCage(1,7));
 w_h1.h_x:=w_h1.h_x+stepX;
 w_h1.h_y:=w_h1.h_y+stepY;
 Buffer.Canvas.Draw(0,0,Fon);
 DeskDraw;
if c >= 25 then
  begin
  Timer1.Enabled:=False;
  w_h1.h_x:=CageToX(Dest_Cage) * Cell_Size;
  w_h1.h_y:=CageToY(Dest_Cage) * Cell_Size;
  w_h1.horse_cage:=Dest_Cage;
  Start_Cage:=-1;
  Dest_Cage:=-1;
  Buffer.Canvas.Draw(0,0,Fon);
  DeskDraw;
  end;
end;
{проверка на возможность хода}
function TForm1.DestCheck(x,y: byte): boolean;
var
Tmp_Cage: byte;
dx, dy: byte;
begin
Result:=False;
Tmp_Cage:=CoordToCage(x,y);
dx:=Abs(x-CageToX(Start_Cage));
dy:=Abs(y-CageToY(Start_Cage));
if (Tmp_Cage <> Start_Cage) then
  if ((dx = 2) and (dy = 1)) or
     ((dx = 1) and (dy = 2)) then
     begin
     if dx = 2 then
       begin
         if (x > CageToX(Start_Cage)) then
           stepX:=2*Step
         else
           stepX:=0-2*Step;
         if y > CageToY(Start_Cage) then
           stepY:=Step
         else
           stepY:=0-Step;
       end
     else
       begin
         if (x > CageToX(Start_Cage)) then
           stepX:=Step
         else
           stepX:=0-Step;
         if y > CageToY(Start_Cage) then
           stepY:=2*Step
         else
           stepY:=0-2*Step;
       end;
     Result:=True;
     end;
end;



procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
w_h1:=THorse.Create(1,7,'white_horse.bmp',CoordToCage(1,7));
if Start_Cage >= 0 then
  begin
  if Dest_Cage < 0 then
    begin
    if DestCheck(cx,cy) then
      begin
      Dest_Cage:=CoordToCage(cx,cy);
      Timer1.Enabled:=True;
      c:=0;
      end
    else
      begin
      Start_Cage:=-1;
      Dest_Cage:=-1;
      end;
    Buffer.Canvas.Draw(0,0,Fon);
    end;
  end
else
  if CoordToCage(cx,cy) = w_h1.horse_cage then Start_Cage:=CoordToCage(cx,cy);
DeskDraw;
end;
все events подключены как надо.Может ещё где ошибка?
Вложения
Тип файла: txt unit.txt (6.3 Кб, 83 просмотров)

Последний раз редактировалось -COREY-; 12.10.2009 в 22:50.
-COREY- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi - нужна помощь Psi_X Помощь студентам 11 05.02.2009 14:59
Нужна помощь с Delphi! Тая Помощь студентам 4 22.11.2008 13:01
Нужна помощь на Delphi ВЕКО Помощь студентам 1 19.04.2008 15:48
Нужна помощь с программой ООП на С++ Vofka Фриланс 3 30.11.2007 16:52
Нужна помощь по Delphi Виктория 1 Фриланс 5 25.02.2007 21:21