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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2013, 23:31   #1
Zонька
Новичок
Джуниор
 
Регистрация: 14.01.2013
Сообщений: 3
По умолчанию Delphi.Игра, с использованием протокола Drag&Drop

Необходимо реализовать игру: На панели находятся N лунок, число которых вводит пользователь. В лунках - шары белого или черного цвета. Цель игры - сначала идут белые шары, затем черные. Для победы в игре нужно сделать не больше n/2 ходов.
Создаю лунки динамически, в списке компонентов их нет. Вот код
Код:
procedure TForm1.FormCreate(Sender: TObject);
var i,j: integer;
begin
  for i:= 1 to N do
  begin
    figura[i] := TShape.Create(Form1);
    figura[i].Parent := Panel1;    {создаются на панели}
    figura[i].Height:= 35;       
    figura[i].Left := 650-40*i; {положение на панели}
    figura[i].Top := 53;    
    figura[i].Brush.Color:=clwhite;
    figura[i].Shape:=stCircle;
    figura[i].Enabled:=False;
    figura[i].DragMode := dmAutomatic;   {можно перемещать}
  end;
    end;
Потом сделала рандомное окрашивание в черный или белый цвет.
Проблема: Не знаю, как теперь обратиться к компонентам Shape, чтобы их менять местами (применить процедуры dragover и dragdrop).
Заранее спасибо за любую помощь!
Zонька вне форума Ответить с цитированием
Старый 14.01.2013, 23:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Допиши:
Код:
figura[i].OnDragDrop:=FigaDragDrop;
Где процедура
Код:
procedure TForm1.FigaDragDrop(Sender, Source: TObject; X, Y: Integer);

begin
 Sender указывает на драганутый Shape
end;
Идея понятна? Назначить обработчик для всех шейпов, а в обработчике проверять какой шейп его вызвал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.01.2013, 00:06   #3
Zонька
Новичок
Джуниор
 
Регистрация: 14.01.2013
Сообщений: 3
По умолчанию

Пока не получается это сделать, буду пытаться) Спасибо!
Zонька вне форума Ответить с цитированием
Старый 15.01.2013, 20:36   #4
Zонька
Новичок
Джуниор
 
Регистрация: 14.01.2013
Сообщений: 3
По умолчанию

Задачу решила. Больше помощь не требуется.
Zонька вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Drag&Drop треугольник Sapsanbl4 Помощь студентам 8 31.01.2012 16:36
delphi... drag & drop vicvic90 Помощь студентам 2 01.05.2011 19:11
Drag&Drop в Delphi Ruska882009 Компоненты Delphi 4 13.03.2011 02:42
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) Arkuz Общие вопросы Delphi 1 18.04.2009 00:15
Drag&Drop по сети в Delphi vovan-brn Помощь студентам 0 28.05.2008 23:12