0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 4
1

Игнорируется нажатие на крестик

27.05.2013, 00:49. Показов 906. Ответов 3
Метки нет (Все метки)

Здраствуйте. Пишу курсовую, игру пакмен. Вот сделал, чтобы пакмен двигался по полю. Но постала такого рода проблема. При закрытии программы через крестик, программа игнорирует нажатие и не удается выйти. Кто что знает об этом? Поправте меня, если что не так. Просто привык писат в Visual Studio, а тут графика нужна. Вот я и на билдер перешел 2 дня назад.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        RemoveColor(one, two, three, four, five);
        if(Key == VK_ESCAPE)
        {
                Form1->Close();
        }
 
        if(Key == VK_LEFT)
        {
                LoadLeftAnim(one, two, three, four, five);
                while(Key == VK_LEFT)
                {
                        Repaint();
                        Form1->Canvas->Draw(x, y, one);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, two);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, three);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, four);
                        Sleep(25);
                        Application->ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, five);
                        Sleep(25);
                        if(x == speed)
                        {
                             x+=speed;
                        }
                        x-= speed;
                }
                ;
        }
        if(Key == VK_RIGHT)
        {
                LoadRightAnim(one, two, three, four, five);
                while(Key == VK_RIGHT)
                {
                        Repaint();
                        Form1->Canvas->Draw(x, y, one);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, two);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, three);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, four);
                        Sleep(25);
                        Application->ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, five);
                        Sleep(25);
                        if(x == 350)
                        {
                             x-=speed;
                        }
                        x+= speed;
                }
                ;
        }
        if(Key == VK_UP)
        {
            LoadUpAnim(one, two, three, four, five);
                while(Key == VK_UP)
                {
                        Repaint();
                        Form1->Canvas->Draw(x, y, one);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, two);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, three);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, four);
                        Sleep(25);
                        Application->ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, five);
                        Sleep(25);
                        if(y == speed)
                        {
                             y+= speed;
                        }
                        y -= speed;
                }
                ;
        }
        if(Key == VK_DOWN)
        {
                LoadDownAnim(one, two, three, four, five);
                while(Key == VK_DOWN)
                {
                        Repaint();
                        Form1->Canvas->Draw(x, y, one);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, two);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, three);
                        Sleep(25);
                        Application -> ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, four);
                        Sleep(25);
                        Application->ProcessMessages();
                        Repaint();
                        Form1->Canvas->Draw(x, y, five);
                        Sleep(25);
                        if(y == 350)
                        {
                             y -= speed;
                        }
                        y += speed;
                }
                ;
        }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 00:49
Ответы с готовыми решениями:

Хочу в headerView справа нарисовать крестик, на нажатие по которому закрывается колонка
как это сделать?

Как сделать, чтобы при нажатие на красный крестик форма не закрывалась?
Как сделать, чтобы при нажатие на красный крестик форма не закрывалась?

Игнорируется if
Всем привет ! с формы передаются с текстовых полей $var-ы и с чекбоксов $age-ы, потом изо всех...

Игнорируется Where
Я составил запрос, однако при просмотре в Sublime Text я сразу заметил что WHERE окрашивается в...

3
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
27.05.2013, 03:39 2
C++
1
2
3
4
5
         while(Key == VK_LEFT)
                {
                        Repaint();
                        Form1->Canvas->Draw(x, y, one);
                        Sleep(25);
Убери циклы while() они там не нужны.
И это тоже не нужно :
C++
1
2
Sleep(25);
Application->ProcessMessages();
Событие FormKeyDown() наступает каждый раз при нажатии клавиши, здесь не зачем организовывать циклы обработки событий.

Подозреваю что для отсчета времени вам потребуется TTimer
1
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 4
28.05.2013, 13:41  [ТС] 3
Цитата Сообщение от Avazart Посмотреть сообщение
Убери циклы while() они там не нужны.
Как раз то они там нужны, так ка при нажатии клавиши должно в цикле прорисовываться 5 картинок, создавая анимацию
0
LK
Заблокирован
28.05.2013, 14:11 4
Цитата Сообщение от mvkvadrate Посмотреть сообщение
создавая анимацию
вам советовали
Цитата Сообщение от Avazart Посмотреть сообщение
потребуется TTimer
, а пока программа
C++
1
Sleep(25);
, ей никакой крестик не страшен .
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2013, 14:11

игнорируется gets
В цикле gets выполняется 1 раз и в дальнейшем gets игнорируется for (i = 0; i <= 4; i++) { ...

Меню игнорируется
Почему игнорируется меню,оно собственно не работает,без него все работет,но не могу понять почему с...

Игнорируется RegisterHotKey()
Не понять почему, но все же факт. ЗЫ:Компилятор ошибок не выдает! bool noclip(HWND hwnd) {...

В запросе к БД игнорируется LIKE
Это файл search.php JS-скриптом ему передается методом POST то, что пользователь вбил в поисковую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.