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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2012, 16:51   #1
Vampireeee
Новичок
Джуниор
 
Регистрация: 25.05.2012
Сообщений: 3
По умолчанию Таймер не работает...

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Dogonialki.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
x1=570;
y1=570;
p=0;
n=1;
x=30;
y=30;
DoubleBuffered=true;
Timer1->Interval = 1000;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
Timer1->Enabled=true;
switch(Key)
{
case VK_LEFT : x-=30; break;
case VK_UP: y-=30; break;
case VK_RIGHT: x+=30; break;
case VK_DOWN: y+=30; break;
case 65: x1-=30; break;
case 87: y1-=30; break;
case 68: x1+=30; break;
case 83: y1+=30; break;
}
if(n==1)
{
if(x1==x && y1==y)
{
x=30;
y=30;
x1=570;
y1=570;
p++;
n++;
}
}
if(n==2)
{
if(x1==x && y1==y)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
n--;
}
}
if(x==0 || y==0)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
}
if(x==600 || y==600)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
}
if(x1==0 || y1==0)
{
x=30;
y=30;
x1=570;
y1=570;
p++;
}
if(x1==600 || y1==600)
{
x=30;
y=30;
x1=570;
y1=570;
p++;
}
Label1->Caption=(p);
Label2->Caption=(p1);
if(n==1)
{
Label3->Caption=("Øàð äîãîíÿåò êâàäðàò");
}
if(n==2)
{
Label3->Caption=("Êâàäðàò äîãîíÿåò øàð");
}
Label4->Caption=(t);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormPaint(TObject *Sender)
{
Form1->Canvas->Brush->Color=clWhite;
Form1->Canvas->Rectangle(29,29,601,601);
Form1->Canvas->Brush->Color=clRed;
Form1->Canvas->Ellipse(x, y, x+30, y+30);
Form1->Canvas->Rectangle(x1, y1, x1+30, y1+30);
Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
t++;
if(t==30)
{
if(n==1)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
}
if(n==2)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
}
t=0;
}
}
//---------------------------------------------------------------------------
Таймер вообще даже не начинает отсчета...

Последний раз редактировалось ACE Valery; 25.05.2012 в 17:16.
Vampireeee вне форума Ответить с цитированием
Старый 25.05.2012, 18:16   #2
Vampireeee
Новичок
Джуниор
 
Регистрация: 25.05.2012
Сообщений: 3
По умолчанию

А даже так не работает
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Dogonialki.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
x1=570;
y1=570;
p=0;
n=1;
x=30;
y=30;
DoubleBuffered=true;
Timer1->Interval = 1000;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
Timer1->Enabled=true;
switch(Key)
{
case VK_LEFT : x-=30; break;
case VK_UP: y-=30; break;
case VK_RIGHT: x+=30; break;
case VK_DOWN: y+=30; break;
case 65: x1-=30; break;
case 87: y1-=30; break;
case 68: x1+=30; break;
case 83: y1+=30; break;
}
if(n==1)
{
if(x1==x && y1==y)
{
x=30;
y=30;
x1=570;
y1=570;
p++;
n++;
}
}
if(n==2)
{
if(x1==x && y1==y)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
n--;
}
}
if(x==0 || y==0)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
}
if(x==600 || y==600)
{
x=30;
y=30;
x1=570;
y1=570;
p1++;
}
if(x1==0 || y1==0)
{
x=30;
y=30;
x1=570;
y1=570;
p++;
}
if(x1==600 || y1==600)
{
x=30;
y=30;
x1=570;
y1=570;
p++;
}
Label1->Caption=(p);
Label2->Caption=(p1);
if(n==1)
{
Label3->Caption=("Øàð äîãîíÿåò êâàäðàò");
}
if(n==2)
{
Label3->Caption=("Êâàäðàò äîãîíÿåò øàð");
}
Label4->Caption=(t);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormPaint(TObject *Sender)
{
Form1->Canvas->Brush->Color=clWhite;
Form1->Canvas->Rectangle(29,29,601,601);
Form1->Canvas->Brush->Color=clRed;
Form1->Canvas->Ellipse(x, y, x+30, y+30);
Form1->Canvas->Rectangle(x1, y1, x1+30, y1+30);
Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
ShowMessage("Ne rabotaet");
}
//---------------------------------------------------------------------------

Последний раз редактировалось Vampireeee; 25.05.2012 в 18:25.
Vampireeee вне форума Ответить с цитированием
Старый 25.05.2012, 22:57   #3
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

Invalidate() мешает (в FormPaint).
nick42 вне форума Ответить с цитированием
Старый 26.05.2012, 14:24   #4
Vampireeee
Новичок
Джуниор
 
Регистрация: 25.05.2012
Сообщений: 3
По умолчанию

Помогло) Спасибо:D
Vampireeee вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильно работает таймер Юшков Компоненты Delphi 9 07.11.2011 14:42
Написал простенький класс, но таймер внутри него не работает Человек_Борща Общие вопросы Delphi 4 28.10.2011 10:21
Фоновая программа корректно работает только пол дня (использовал таймер) TwiX Общие вопросы Delphi 2 06.09.2010 17:57
Таймер обратного отсчета работает не так как надо.. нужно найти ошибку в коде... Человек_Борща Общие вопросы Delphi 10 13.04.2010 20:06
не работает таймер задержки shuhermayer Общие вопросы C/C++ 3 25.03.2010 23:05