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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2014, 01:00   #1
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию Компоненты на форме

Подскажите пожалуйста,какие компоненты должны быть размещены на форме для работы это программы.
200-b71347ebfc.jpg
spectrum988 вне форума Ответить с цитированием
Старый 14.04.2014, 08:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кнопки класса SpeedButton.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2014, 12:18   #3
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Это был компоненты TImages,глупо конечно было мне показать только форму,если нужен то весь код.
Вот у меня заработала программа,на форме рисует цифры,но почему-то я не могу их переставлять,что же не то,может я какое свойство еще не добавил ?
Код:
void __fastcall TForm1::FormShow(TObject *Sender)
{
NewGame();//íîâàÿ èãðà
}
void __fastcall TForm1::NewGame()
{
ClientWidth=WC * 4;
ClientHeight=HC * 4;
int k = 1;
 for (int i =0;i<4;i++)
   for (int j=0;j<4;j++)
     pole[i][j]=k++;
Mixer();
ShowPole();
}

void __fastcall TForm1::Mixer()
{
int x1,y1;
int x2,y2;
int d;
Randomize();
x1 = 3; y1 = 3;
for(int i = 0; i < 150; i++)
{
 do
  {
   x2 = x1;
   y2 = y1;
   d= RandomRange(1,5);
switch( d ) {
case 1: x2--; break;
case 2: x2++;break;
case 3: y2--; break;
case 4: y2++;break;
}
}
while((x2 < 0) | (x2 >= 4)||(y2 < 0) | (y2 >=4));
pole[y1][x1]=pole[y2][x2];
pole[y2][x2] = 16;
x1 = x2;y1 = y2;
ex = x1;
ey=y1;
}
}
void __fastcall TForm1::ShowPole()
{
int x,y;
for (int i = 0; i < 4; i++)
 for (int j = 0; j < 4; j++)
   {x= j * HC;
    y= i * WC;
if(pole[i][j] != 16 )
{
Canvas->Brush->Color = clBtnFace;
Canvas->Rectangle(x,y, x+WC-1,y+HC-1);
Canvas->TextOutA(x+15,y+10,IntToStr(pole[i][j]));
}
else {
Canvas->Brush->Color = clBtnHighlight;
Canvas->Rectangle(x,y,x+WC-1,y+HC-1);
}}}
bool Finish();

void __fastcall TForm1::FormMouseDown(TObject *Sender,TMouseButton Button, TShiftState Shift,int X,int Y)
{
int cx,cy;
ex= X / WC;
cy = Y / HC;
if( (abs(cx-ex)==1&&cy-ey==0 )||( abs(cy-ey)==1 &&cx-ex==0 ))
{
pole[ey][ex] =pole[cy][cx];
pole[cy][cx] = 16;
ex=cx;
ey=cy;
ShowPole();
if (Finish())
{
ShowPole();
int r = MessageDlg("Öåëü äîñòèãíóòà!\Åùå ðàç?",mtInformation, TMsgDlgButtons() << mbYes<<mbNo, 0);
if(r == mrNo)
Form1->Close();
else
{
NewGame();
ShowPole();}}}}
bool Finish()
{
bool result;
int row, col;
int k =1;
result = true;
for(row = 0; row < 4; row++)
{
 for(col = 0; col < 4; col++)
  if(pole[row][col] ==k)
  k++;
else
{result =false;
break;
}
if(!result)
break;
}
return(result);
}
void __fastcall TForm1::FormPaint(TObject *Sender)
{
ShowPole();
}
spectrum988 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отображаются компоненты на форме tarakan1983 Компоненты Delphi 7 18.11.2013 16:05
не появляются компоненты на форме в Eclipse betirsolt Общие вопросы по Java, Java SE, Kotlin 8 17.08.2012 16:52
Не показывать компоненты на форме MyLastHit Общие вопросы Delphi 5 03.12.2010 02:12
ShowWindow: не отображаются компоненты на форме MyasNick Win Api 4 24.02.2009 18:20
Временно скрыть компоненты на форме Hellen Общие вопросы Delphi 3 25.02.2007 09:00