Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12

Структура приложения "Спичечные головоломки"

15.02.2015, 13:01. Показов 3762. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
С самого начала: хочу реализовать приложение головоломку "спички".
И так, что я пока сделал:
Я могу ввести число строк и столбцов и нарисовать, а так же сразу
создаю массив с точками пересечения прямых.

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
    Image1->Canvas->Brush->Color = clWhite;
    Image1->Canvas->Pen->Color = clSkyBlue;
    int N = 7;
    N = Edit1->Text.ToInt();
    Panel1->Width = Panel1->Height;
    float dx, dy;
    dy = (float)Image1->Height / N;
    dx = (float)Image1->Width / N;
    TPointF *map = new TPointF[(N+1)*(N+1)]; // массив точек
    int i = 0;
    for (float y = 0; y < Image1->Height; y+=dy) {
        for (float x = 0; x < Image1->Width; x+=dx) {
            Image1->Canvas->Rectangle(x, y , x+dx, y+dy);
            if (x==0&&y==0) {
                map[i] = PointF(x,y);       i++;
                map[i] = PointF(x+dx,y);    i++;
                map[i] = PointF(x+dx,y+dy); i++;
                map[i] = PointF(x,y+dy);    i++;
            }
            if (x!=0&&y==0) {
                map[i] = PointF(x+dx,y);    i++;
                map[i] = PointF(x+dx,y+dy); i++;
            }
            if (y!=0&&x==0) {
                map[i] = PointF(x,y+dy);    i++;
                map[i] = PointF(x+dx,y+dy); i++;
            }
            if (x!=0&&y!=0) {
                map[i] = PointF(x+dx,y+dy); i++;
            }
        }
    }
Далее я буду создавать спичку и рисовать.
И тут вопрос как лучше рисовать спичку и как обрабатывать Drag And Drop? при рисовании на Canvos
Плюс ко всему мне нужно обрабатывать положение спички, так, что бы она могла располагаться только от точки до точки:
Название: 2.png
Просмотров: 141

Размер: 2.7 КбНазвание: 3.png
Просмотров: 140

Размер: 4.5 Кб
Как я думою:
Мне нужно создать класс Квадрат и при подсчете точек создавать объекты этого класса и сохранять его координаты.
т.е. наглядно будет так:Название: 4.png
Просмотров: 142

Размер: 3.1 Кб
Далее просто MouseMove будем бегать по всем квадратам и сравнивать координаты и положение мышки:
Относительно всего поля найдем нужный квадрат, а относительно этого квадрата будем смотреть где в нем расположить спичку.

Нужны комментарии, предложения, замечания и т.д. ...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2015, 13:01
Ответы с готовыми решениями:

Структура приложения
Обращаюсь к опытным разработчикам как новичок. Хочу написать маленькое несложное приложение, но возникла проблема с проектированием...

Структура приложения
У меня есть класс user и post. Есть контроллер. Насчет классов понятно - на каждый объект свой класс. А вот насчет контроллеров -...

Структура Qt-приложения
Хотел бы понять, как устроено приложение Qt и как правильно его разрабатывать. Как правильно разделять интерфейс от логики приложения....

56
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 13:09
Студворк — интернет-сервис помощи студентам
ivan.-94 почему мой коммент проигнорировал? то что я предложил - самое правильное решение.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2015, 13:53
ivan.-94, лучше не заставлять юзеров проявлять чудеса микроконтроля мышкой. Сделай проще - тянешь спичку ведь не сферическую, а спозиционированную каким-то образом по отношению к сетке. Так и магнитить ее только в места, которым соответствует ее текущее положение в пространстве. А вращение спички производить заранее или в процессе перетаскивания(кликом ПКМ, например).
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 14:26

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
float DistanceFromPointToLine(int Mx, int My, float A, float B, float C);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
 
float DistanceFromPointToLine(int Mx, int My, float A, float B, float C)
{
        return fabs(A*Mx+B*My+C)/sqrt(A*A+B*B);
}
 
void DrawBlack(TImage *image)
{
        int W = image->Width;
        int H = image->Height;
 
        image->Canvas->Pen->Color = clBlack;
        image->Canvas->Pen->Width = 3;
        image->Canvas->Rectangle(0,0,W,H);
        image->Canvas->MoveTo(0,0);
        image->Canvas->LineTo(W,H);
        image->Canvas->MoveTo(0,H);
        image->Canvas->LineTo(W,0);
}
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        DrawBlack(Image1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
        float W = Image1->Width;
        float H = Image1->Height;
 
        float fDist[6];
 
        fDist[0] = DistanceFromPointToLine(X,Y, -H/W, -1, H); // y = -H/W + H  (íàêëîí ñïè÷êè âïðàâî)
        fDist[1] = DistanceFromPointToLine(X,Y, H/W, -1, 0); // y = H/W (íàêëîí ñïè÷êè âëåâî)
        fDist[2] = DistanceFromPointToLine(X,Y, 1, 0, 0); // x = 0 (ñïè÷êà ñëåâà)
        fDist[3] = DistanceFromPointToLine(X,Y, 1, 0, -W); // x = 0 (ñïè÷êà ñïðàâà)
        fDist[4] = DistanceFromPointToLine(X,Y, 0, 1, 0); // y = 0 (ñïè÷êà ñâåðõó)
        fDist[5] = DistanceFromPointToLine(X,Y, 0, 1, -H); // y = H (ñïè÷êà ñíèçó)
 
        float fDistMin = fDist[0];
        int idxMin = 0;
 
        for ( int i = 1; i < 6; i++ )
        {
                if (fDist[i] < fDistMin)
                {
                        fDistMin = fDist[i];
                        idxMin = i;
                }
        }
 
        DrawBlack(Image1);
 
        Image1->Canvas->Pen->Width = 5;
        Image1->Canvas->Pen->Color = clRed;
 
        if ( idxMin == 0 ) // íàêëîí ñïè÷êè âïðàâî
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 1 ) // íàêëîí ñïè÷êè âëåâî
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 2 ) // ñïè÷êà ñëåâà
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(0,H);
        }
        else if ( idxMin == 3 ) // ñïè÷êà ñïðàâà
        {
                Image1->Canvas->MoveTo(W,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 4 ) // ñïè÷êà ñâåðõó
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 5 ) // ñïè÷êà ñíèçó
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,H);
        }
 
}
//---------------------------------------------------------------------------
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:28  [ТС]
Цитата Сообщение от kzru_hunter Посмотреть сообщение
почему мой коммент проигнорировал? то что я предложил - самое правильное решение.
Я не проигнорировал а как раз таки и рассматриваю его.
Так как идея, что предложил Avazart либо мне не до конца понятна либо не подходит чуток.
С вашей идеей я пока так взяв листочек и ручку набросал только:

Легко заметить, что расстояние для стороны
Left: Расстояние от точки (Left;y) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Left)^2}
Right: Расстояние от точки (Right;y) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Right)^2}
Top: Расстояние от точки (x;Top) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(y-Top)^2}
Top: Расстояние от точки (x;Bottom) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(y-Bottom)^2}
И остается вопрос по диагоналям... Там прямые заданны не уравнением, а двумя точками.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:32  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Сделай проще - тянешь спичку ведь не сферическую, а спозиционированную каким-то образом по отношению к сетке. Так и магнитить ее только в места, которым соответствует ее текущее положение в пространстве.
Спичка позиционирована не по отношению к сетке а непосредственно какого то квадрата, который в свою очерель является частью сетки.
Цитата Сообщение от BRcr Посмотреть сообщение
А вращение спички производить заранее или в процессе перетаскивания(кликом ПКМ, например).
Ну вращать спичку вообще думою не стоит, нужно то сделать головоломку и на вряд ли кто то будет думать в какую сторону головку спички повернуть.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2015, 14:46

Не по теме:

Цитата Сообщение от ivan.-94 Посмотреть сообщение
Легко заметить, что
Я чуть печенькой не подавился, что ж ты делаешь-то?!:D Корни из квадратов...



Вычисление расстояния между точкой и прямой/лучом/отрезком

Добавлено через 5 минут
Цитата Сообщение от ivan.-94 Посмотреть сообщение
Ну вращать спичку вообще думою не стоит, нужно то сделать головоломку и на вряд ли кто то будет думать в какую сторону головку спички повернуть.
Да причем тут головка? Вращать - оно в смысле по горизонтали спичка, по вертикали или по одной из диагоналей. Изначально. И в то время, пока тащим и думаем, куда ее сбросить.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:49  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Я чуть печенькой не подавился, что ж ты делаешь-то?! Корни из квадратов...
2ое слагаемое - разность по другой координате равно нулю, так зачем же писать?
Вы бы хотели что бы я записал так:https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Left)^2+(y-y)^2}?
А вам не кажется что это равносильно https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Left)^2}?

Добавлено через 1 минуту
Цитата Сообщение от BRcr Посмотреть сообщение
Вычисление расстояния между точкой и прямой/лучом/отрезком
А я же четко писал
Цитата Сообщение от ivan.-94 Посмотреть сообщение
Расстояние от точки (Left;y) до точки (x;y)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
18.02.2015, 14:50
Цитата Сообщение от ivan.-94 Посмотреть сообщение
А вам не кажется что это равносильно
Модуль? Не, не слышал про модули, лучше корень из квадрата использовать, угу...
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2015, 14:52
Вообще-то, нам кажется, что sqrt( pow( x - y, 2 ) ) и fabs( x - y ) - равносильно. По результату.
Сдается мне, кто-то жестко заработался.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:53  [ТС]
kzru_hunter, спасибо, можете чуток пояснить
fabs(A*Mx+B*My+C)/sqrt(A*A+B*B);
Что тут А,В,С. относительно того что Width = Height = (просто )a
0
18.02.2015, 14:54

Не по теме:

Цитата Сообщение от ivan.-94 Посмотреть сообщение
А я же четко писал
А, ну ладно. Простите дяденька засранца.:cry: Пойду потихоньку...

0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:58  [ТС]
Вот вы навалились на меня:
Формула вычисления расстояния между двумя точками https://www.cyberforum.ru/cgi-bin/latex.cgi?A({x}_{a},{y}_{a}) и https://www.cyberforum.ru/cgi-bin/latex.cgi?B({x}_{b},{y}_{b}) на плоскости:
https://www.cyberforum.ru/cgi-bin/latex.cgi?AB = \sqrt{({x}_{b}-{x}_{a})^2+({y}_{b}-{y}_{a})^2}
Давай те закроем этот вопрос, да можно лучше, но сделал как сделал - смысл то не в этом.
Спасибо, за замечание. В следующий раз учту
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 15:04
ivan.-94 забудь ты про своё расстояние между двумя точками и меньше авазарта слушай.

Упростил код немного. Использовал следующие материалы: http://www.math.by/geometry/eqline.html и http://ru.onlinemschool.com/ma... y/p_line1/
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
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
float DistanceFromPointToLine(int Mx, int My, int X1, int Y1, int X2, int Y2);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
 
float DistanceFromPointToLine(int Mx, int My, int X1, int Y1, int X2, int Y2) // Mx и My - координаты точки, а X1,Y1,X2,Y2 - координаты двух точек, образующих линию
{
        float A = Y1-Y2;
        float B = X2-X1;
        float C = X1*Y2-X2*Y1;
        return fabs(A*Mx+B*My+C)/sqrt(A*A+B*B);
}
 
void DrawBlack(TImage *image)
{
        int W = image->Width;
        int H = image->Height;
 
        image->Canvas->Pen->Color = clBlack;
        image->Canvas->Pen->Width = 3;
        image->Canvas->Rectangle(0,0,W,H);
        image->Canvas->MoveTo(0,0);
        image->Canvas->LineTo(W,H);
        image->Canvas->MoveTo(0,H);
        image->Canvas->LineTo(W,0);
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        DrawBlack(Image1);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
        float W = Image1->Width;
        float H = Image1->Height;
 
        float fDist[6];
 
        // уравнение прямой A*x+B*y+C=0
        // уравнение прямой по двум точкам: (y1-y2)*x+(x2-x1)*y+(x1*y2-x2*y1)=0
 
        fDist[0] = DistanceFromPointToLine(X,Y, 0,H, W,0); // (наклон спички вправо)
        fDist[1] = DistanceFromPointToLine(X,Y, 0,0, W,H); // (наклон спички влево)
        fDist[2] = DistanceFromPointToLine(X,Y, 0,0, 0,H); // (спичка слева)
        fDist[3] = DistanceFromPointToLine(X,Y, W,0, W,H ); // (спичка справа)
        fDist[4] = DistanceFromPointToLine(X,Y, 0,0, W,0); // (спичка сверху)
        fDist[5] = DistanceFromPointToLine(X,Y, 0,H, W,H); // (спичка снизу)
 
        float fDistMin = fDist[0];
        int idxMin = 0;
 
        for ( int i = 1; i < 6; i++ )
        {
                if (fDist[i] < fDistMin)
                {
                        fDistMin = fDist[i];
                        idxMin = i;
                }
        }
 
        DrawBlack(Image1);
 
        Image1->Canvas->Pen->Width = 5;
        Image1->Canvas->Pen->Color = clRed;
 
        if ( idxMin == 0 ) // наклон спички вправо
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 1 ) // наклон спички влево
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 2 ) // спичка слева
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(0,H);
        }
        else if ( idxMin == 3 ) // спичка справа
        {
                Image1->Canvas->MoveTo(W,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 4 ) // спичка сверху
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 5 ) // спичка снизу
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,H);
        }
}
//---------------------------------------------------------------------------
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 18:38  [ТС]
kzru_hunter, Спасибо и отдельное спасибо за то, что предоставили материал

Добавлено через 3 часа 19 минут
У меня сейчас проблема в том, что при перемещении спички - процессор подскакивает 20%-50%
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 18:54
Цитата Сообщение от ivan.-94 Посмотреть сообщение
У меня сейчас проблема в том, что при перемещении спички - процессор подскакивает 20%-50%
Тут уже другой вопрос и нужно оптимизировать с графикой. Как вариант, делать прорисовку через каждые несколько мс.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.02.2015, 08:22
ivan.-94,
1) Включите двойную буферизацию формы.
2) Отрисовывайте все в битмап, а потом прорисовывайте его в имейдж.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.02.2015, 14:32
Цитата Сообщение от SatanaXIII Посмотреть сообщение
2) Отрисовывайте все в битмап, а потом прорисовывайте его в имейдж.
Для этого есть PaintBox, но думаю не поможет ибо скорее всего тупит из-за не оптимального поиска.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
19.02.2015, 15:13  [ТС]
Цитата Сообщение от kzru_hunter Посмотреть сообщение
Как вариант, делать прорисовку через каждые несколько мс.
У меня перерисовка идет только при каки то изменениях.
Цитата Сообщение от Avazart Посмотреть сообщение
ибо скорее всего тупит из-за не оптимального поиска.
Не, тормозит при перерисовке:
у меня в функции дров для каждой спички выполняется
C++
1
2
3
MatchesList[i]->BitmapMatches = new TPNGGraphic();
                MatchesList[i]->BitmapMatches->Assign(BitmapMatches[BOTTOM]);
                Canvas->StretchDraw(Rect(left+2, bottom-d, right-2, bottom+d), MatchesList[i]->BitmapMatches);
Плюс не мало важна сама прорисовка поля:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Canvas->Brush->Color    = clWhite;
    Canvas->Pen->Color      = clSkyBlue;
    Canvas->Pen->Width      = 1;
    float dx, dy;
    dy = (float)Height / N;
    dx = (float)Width / N;
    int i = 0, ID = 0;
    SquareList.clear();
    for (float y = 0; y < Height; y+=dy) {
        for (float x = 0; x < Width; x+=dx) {
            Canvas->Rectangle(x, y , x+dx, y+dy);
            this->SquareList.push_back(new Square(x, y, x+dx, y+dy, ID));
            ID+=1;
        }
    }
    float d = 0.05*dx;
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
19.02.2015, 15:19  [ТС]
В общем у меня массив с 6 изображениями, я при прорисовке в зависимости от статуса спички(положения) задаю ей какое то изображение, отрисовываю и освобождаю объект, поэтому с памятью проблем нет - она не растет.
Но когда я беру спичку и начинаю двигать проц подлетает.
Вот пока, что то упростил сократил, сделал меньше перерисовок - пошустрее, но мне не нравится..
Вложения
Тип файла: rar Release.rar (2.12 Мб, 4 просмотров)
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.02.2015, 15:36
На кой тебе StretchDraw() ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2015, 15:36
Помогаю со студенческими работами здесь

Структура приложения
Меня уже давно интересует как правильно организовать структуру приложения(набор каталогов, файлов etc). Куда класть сторонние библиотеки и...

Структура приложения
Коллеги, помогите, плз, советом. Создаю приложение: Есть консольный класс Client: В общих чертах программа делает следующее (Для...

Структура приложения
Подскажите, поделитесь опытом. Как правильно начать писать приложение, как предварительно определить структуру будущего приложения, чтобы в...

Структура приложения
Здравтсвуйте! Приложение постраничное с использованием React на некоторых страницах. Подскажите, как удобнее в плане расширяемости...

Структура приложения ООП
Добрый день! Погружаюсь в изучение ООП в PHP! Не могу нигде нарыть информацию о структуре приложений. Допустим есть задача - создать...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru