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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 17:04   #1
RgnRok
Пользователь
 
Аватар для RgnRok
 
Регистрация: 13.01.2009
Сообщений: 19
Подмигивание Доска

Доброго времени суток, прошу помощи.

Такое дело, нужно создать игрушку Реверси, в билдере полный ноль поэтому толком ничего не знаю. Облазив инет нашел способ создания доски при помощи DrawGrid. Получилась вот такая штука.

Про логику и тд пока не думал, сейчас застрял на том, чтоб цвета закрашивания чередовались, но почему-то никак не хочет, красит только "последним" цетом.
Кто знает как это исправить, прошу помочь. Или же выслушаю другие идеи как можно реализовать доску и смену цвета ее компонентов по шелчку, а то в голову ничего больше не лезет.

Заранее спасибо.
Вложения
Тип файла: rar kr.rar (38.8 Кб, 20 просмотров)
RgnRok вне форума Ответить с цитированием
Старый 22.02.2011, 19:39   #2
RgnRok
Пользователь
 
Аватар для RgnRok
 
Регистрация: 13.01.2009
Сообщений: 19
По умолчанию

Чтож, раз данная тема не пошла, попробуем второй способ

Создал массив Panel все нормально
Код:
TPanel *p[6][6];      int i,j;

      for (i=0; i<6; ++i)
        for (j=0; j<6; ++j)
 { p[i][j]=new TPanel(Form1);
  p[i][j]->Parent=Form1;

  p[i][j]->Top=50*i;
  p[i][j]->Left=50*j;
  p[i][j]->Width=50;
  p[i][j]->Height=50;
  p[i][j]->Color=clGreen;
    }
закрасил, теперь нужно по щелчку менять цвет каждой панели, и тут снова тупик.

Незнаю куда примастить p[i][j]->OnClick (если конечно это реализуется через данный метод) Кто знает очень прошу помочь.
Спасибо
RgnRok вне форума Ответить с цитированием
Старый 27.02.2011, 14:54   #3
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от RgnRok Посмотреть сообщение
Незнаю куда примастить p[i][j]->OnClick (если конечно это реализуется через данный метод) Кто знает очень прошу помочь.
Спасибо
Присвой функцию обработки события для компонента:
Код:
  p[i][j]->OnClick=MyPanelClick;
Где MyPanelClick:
Код:
void __fastcall MyPanelClick(TObject *Sender);
Чтобы понять какая панель была вызвала данной функцией - для каждого компонента присвой свой номер:
Код:
 p[i][j]->Tag  = j*6 + i;
Тогда у всех компонентов функция реализации такая:
Код:
void __fastcall TForm1::MyPanelClick(TObject *Sender)
{
int number = ((TPanel*) Sender)->Tag;
int i = number%6;
int j = number/6;
AnsiString str= "Вы нажали на панель i=" + IntToStr( i) + " j=" + IntToStr( j);
ShowMessage ( str);
}

Последний раз редактировалось An1ka; 27.02.2011 в 15:19.
An1ka вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доска Гальтона на си++ korshunation Помощь студентам 1 19.10.2011 04:55
шахматная доска revaldo666 Общие вопросы C/C++ 4 11.01.2011 11:25
Шахматная доска!!! Евгений19 Помощь студентам 3 08.03.2010 20:02
Шахматная доска Настенька..Блонди Паскаль, Turbo Pascal, PascalABC.NET 2 15.05.2009 23:26