Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 19.12.2014
Сообщений: 10

В графическом окне колеса со спицами

02.02.2015, 21:22. Показов 2842. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать следующее приложение: В графическом окне случайным образом размещается от 3 до 10 колес (количество определяется пользователем) разных размеров, которые катятся от одного края окна к другому (направление для каждого колеса выбирается случайно). По достижении края экрана колесо уничтожается. Колесо представляет собой две концентрические окружности соединенные четырьмя линиями (спицами колеса).

Меня конкретно интересует как сделать спицы и как сделать, что бы они двигались вместе с окружностью.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2015, 21:22
Ответы с готовыми решениями:

В графическом окне колеса со спицами - C++
Написать следующее приложение: В графическом окне случайным образом размещается от 3 до 10 колес (количество определяется пользователем)...

Реализовать вращение колеса с разноцветными спицами
Ребята спасайте, есть задание: lab№ 7. Колесо с шестью разноцветными спицами вращается 25 сек с дискретом 0.5 сек, поворачиваясь на...

Рисование в графическом окне
Всем здравствуйте. Мы нарисовали на PictureBox средствами GDI+ или API графический примитив. Свернув-развернув форму мы получим чистое...

8
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
03.02.2015, 13:05
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Только почти всё рандомно:
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
#include <cmath>
#include <list>
#include <cstdlib>
#include <ctime>
 
#include <SFML/Graphics.hpp>
 
 
class WheelShape : public sf::Transformable , public sf::Drawable
{
public:
   WheelShape ( float rimRadius , float hobRadius , sf::Uint16 spokesCount )
   {
      if ( rimRadius< 1 || hobRadius<1 )
      {
         hobRadius = 10.0f ;
         rimRadius = 20.0f ;
      }
      if ( rimRadius<hobRadius )
      {
         std::swap(rimRadius,hobRadius) ;
      }
      if ( spokesCount<4 )
      {
         spokesCount = 4 ;
      }
 
      rim_.setRadius(rimRadius) ;
      rim_.setOutlineThickness(1) ;
      rim_.setOutlineColor(sf::Color::White) ;
      rim_.setOrigin ( rimRadius,rimRadius ) ;
      rim_.setFillColor(sf::Color::Transparent) ;
 
      hob_.setRadius(hobRadius) ;
      hob_.setOutlineThickness(1) ;
      hob_.setOutlineColor(sf::Color::Red) ;
      hob_.setOrigin ( hobRadius,hobRadius ) ;
      hob_.setFillColor(sf::Color::Transparent) ;
 
 
      float angle = (360.0f/spokesCount) * M_PI / 180.0f ;
 
      for ( sf::Uint16 i = 0 ; i<spokesCount ; ++i )
      {
         float xRim = cos(angle*i) * rimRadius ;
         float yRim = sin(angle*i) * rimRadius ;
         float xHob = cos(angle*i) * hobRadius ;
         float yHob = sin(angle*i) * hobRadius ;
         spokes_.append( sf::Vertex( sf::Vector2f(xHob,yHob) , sf::Color::Yellow ) ) ;
         spokes_.append( sf::Vertex( sf::Vector2f(xRim,yRim) , sf::Color::Yellow ) ) ;
      }
      spokes_.setPrimitiveType(sf::Lines) ;
   }
 
   virtual void draw (sf::RenderTarget &target, sf::RenderStates states) const
   {
      states.transform *= getTransform() ;
      target.draw(rim_,states) ;
      target.draw(hob_,states) ;
      target.draw(spokes_,states) ;
   }
   float getWheelRadius () const
   {
      return rim_.getRadius() ;
   }
 
private:
   sf::CircleShape rim_ ;
   sf::CircleShape hob_ ;
   sf::VertexArray spokes_ ;
} ;
 
 
class Wheel : public sf::Transformable , public sf::Drawable
{
public:
   Wheel ( float rimRadius , float hobRadius , sf::Uint16 spokesCount , sf::Vector2f position = sf::Vector2f() )
    : wheel_(rimRadius,hobRadius,spokesCount) , needUpdateState(true)
   {
      setPosition(position) ;
      update_wheel() ;
   }
 
   void updateState ( float delta_s )
   {
      if ( needUpdateState )
         update_wheel() ;
      wheel_.rotate( delta_s/r_pi_div_180_ ) ;
   }
 
   virtual void draw (sf::RenderTarget &target, sf::RenderStates states) const
   {
      states.transform *= getTransform() ;
      target.draw(wheel_,states) ;
   }
 
   float getRadius() const
   {
      return wheel_.getWheelRadius() ;
   }
 
private:
   void update_wheel ( )
   {
      r_pi_div_180_ = wheel_.getWheelRadius() * M_PI / 180.0f   ;
      needUpdateState = false ;
   }
   bool needUpdateState ;
   float r_pi_div_180_ ;
   WheelShape wheel_ ;
} ;
 
 
 
void move_wheel ( Wheel & wheel , const sf::Vector2f & vecV )
{
   wheel.move(vecV) ;
   float s = -vecV.x*vecV.x-vecV.y*vecV.y ;
   wheel.updateState( (vecV.x<0)?-powf(fabs(s),0.5f):powf(fabs(s),0.5f) ) ;
}
 
 
 
Wheel get_random_wheel ( sf::Uint16 w , sf::Uint16 h )
{
   return Wheel (
      static_cast<float>(rand()%50 + 20 ) , //Внешний радиус
      static_cast<float>(rand()%10 + 10 ) , //Внутренний радиус
      rand()%12 + 4 , //Кол-во спиц
      sf::Vector2f( //Начальные координаты
         static_cast<float>(rand()%w),
         static_cast<float>(rand()%h)
      )
   ) ;
}
 
sf::Vector2f get_random_speed_vector ( )
{
   int x , y ;
   for ( x = rand()%201 - 100 ;x==0; x = rand()%100 - 50 ) ;
   for ( y = rand()%201 - 100 ;y==0; y = rand()%100 - 50 ) ;
   return sf::Vector2f(x,y) ;
}
 
 
bool out_of_rect ( const Wheel & wheel , const sf::Rect<float> & rect )
{
   sf::Vector2f pos = wheel.getPosition() ;
   float r = wheel.getRadius() ;
   float left = pos.x - r ;
   float right = pos.x + r ;
   float top = pos.y - r ;
   float bottom = pos.y + r ;
   return left<rect.left || right>(rect.width+rect.left) || top<rect.top || bottom>(rect.height+rect.top) ;
}
 
 
int main()
{
   srand(time(0)) ;
   sf::RenderWindow app(sf::VideoMode(800, 600), "SFML window") ;
   app.setFramerateLimit(60) ;
 
   typedef std::list < std::pair < Wheel , sf::Vector2f > > Container ;
 
   Container wheels ;
 
   size_t count_wheels = 10 ;//Кол-во колес
   while (count_wheels--)
   {
      wheels.push_back( std::make_pair(get_random_wheel(800,600) , get_random_speed_vector() ) ) ;
   }
 
   sf::Clock timer ;
 
   while (app.isOpen())
   {
      sf::Time dt = timer.restart() ;
      sf::Event event;
      while (app.pollEvent(event))
      {
         if (event.type == sf::Event::Closed)
            app.close();
      }
 
 
      for ( Container::iterator it = wheels.begin() ; it!=wheels.end() ; )
      {
         move_wheel(it->first,it->second * (timer.getElapsedTime()+dt).asSeconds() ) ;
         if ( out_of_rect( it->first , sf::Rect<float>(0,0,800,600) ) )
            it = wheels.erase(it) ;
         else
            ++it;
      }
 
      app.clear() ;
      for ( Container::iterator it = wheels.begin() ; it!=wheels.end() ; ++it )
      {
         app.draw(it->first) ;
      }
 
      app.display() ;
      if ( wheels.empty() )
         app.close() ;
   }
 
   return EXIT_SUCCESS;
}
Говнокод проверялся на Lubuntu 14.04
результат, если кому интересно
1
 Аватар для Горбаг
184 / 176 / 57
Регистрация: 25.09.2014
Сообщений: 834
04.02.2015, 09:58
Работа ведь с графикой? Что мешает не заморачиваться с линиями, а сделать сразу 1 большую окружность и вторую, меньшую, но уже с торчащими из нее спицами? А пропуски между спицами сделать прозрачными. Вот и будет все это выглядеть, как 2 окружности, соединенные спицами. Кому какое дело до реализации, если зачада выполнена и визуально никто ничего не отличит? Если конечно препод не придирчивый именно до мелочей и точности реализации тз.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
04.02.2015, 10:09
Цитата Сообщение от Горбаг Посмотреть сообщение
сделать сразу 1 большую окружность и вторую, меньшую, но уже с торчащими из нее спицами
А делание торчащих из нее спиц это не есть
Цитата Сообщение от Горбаг Посмотреть сообщение
заморачиваться с линиями
?
0
 Аватар для Горбаг
184 / 176 / 57
Регистрация: 25.09.2014
Сообщений: 834
04.02.2015, 11:00
Я имел ввиду не рисование линий, как отдельных элементов, и просчет их движения относительно окружностей, а именно рисование окружности с торчащими из нее линиями. Таким образом и просчет будет только для 2 окружностей. Не знаю, понятно ли объяснил в этот раз.
Наверно так еще понятнее будет - использование тайла, например, и его вращение.
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2224 / 1426 / 420
Регистрация: 16.05.2013
Сообщений: 3,647
Записей в блоге: 6
04.02.2015, 12:47
Таки тоже хотел повыпендриваться с этой задачей, но столкнулся с непонятным для меня поведением моего говнокодца.
Короткая предыстория. Запилил класс CWheel представляющий неподвижное вращающееся колесо. Далее я от него наследуюсь и добавляю возможность перемещения в классе CMovingWheel.
В програме за отрисовку графики отвечает класс CRenderer, который содержит список всех окружностей. Для рендеринга класс CRenderer вызывает функцию отрисовки CMovingWheel::rendering() для каждой окружности.
Теперь вопрос: если помещать во внутренний список рендера CRenderer указатели на базовый класс CWheel все работает отлично. На как только я пытаюсь переделать список CRenderer под указатели на CMovingWheel программа начинает немерено жрать ресурсы процессора. Вопрос с чем это может быть связанно?
Завязанные файлы:

main.cpp
Кликните здесь для просмотра всего текста
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
#include <windows.h>
#include "CWindow.h"
#include "CRenderer.h"
#include "CMovingWheel.h"
 
int win_x = 800;
int win_y = 600;
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow) {
 
    ew::CWindow window(hInstance, win_x, win_y);
    ew::CRenderer renderer(window.getDC());
    window.setRenderer(&renderer);
 
    ew::CWheel wheel_01(0.0f, 30.0f, 15.0f, 30.0f, 20, -0.2);
 
    ew::CWheel wheel_02(150.0f, 90.0f, 30.0f, 60.0f, 30, 0.12);
    wheel_02.setColor(0.0f, 0.0f, 1.0f);
 
    ew::CWheel wheel_03(-120.0f, -120.0f, 30.0f, 45.0f, 25, -0.05);
    wheel_03.setColor(0.0f, 1.0f, 0.0f);
 
    ew::CWheel wheel_04(-120.0f, 120.0f, 30.0f, 75.0f, 40, 0.08);
    wheel_04.setColor(0.0f, 0.5f, 0.3f);
 
    ew::CMovingWheel wheel_05(window.getWidth(), window.getHeight());
    wheel_05.setColor(0.5f, 0.4f, 0.3f);
/*
    renderer.pushWheel(&wheel_01); //<--Для этих объектов работает штатно
    renderer.pushWheel(&wheel_02);
    renderer.pushWheel(&wheel_03);
    renderer.pushWheel(&wheel_04);
  */
    renderer.pushWheel(&wheel_05); //<--Оставляем это тормозит
 
    return window.exec();
}


CRenderer.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef CRENDERER_H_INCLUDED
#define CRENDERER_H_INCLUDED
 
#include <windows.h>
#include <vector>
#include "CMovingWheel.h"
namespace ew {
class CRenderer {
public:
    CRenderer(HDC hDC);
    void rendering();
    void pushWheel(CMovingWheel* wheel);
    void ChangeSize(int nw_width, int nw_height);
private:
    HDC hdc;
    std::vector<CMovingWheel*> cnt_wheel;
};
} //<-- namespace es
#endif // CRENDERER_H_INCLUDED


CRenderer.cpp
Кликните здесь для просмотра всего текста
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
#include <gl/gl.h>
#include <algorithm>
#include "CRenderer.h"
 
ew::CRenderer::CRenderer(HDC hDC): hdc(hDC), cnt_wheel() {
 
}
 
void ew::CRenderer::pushWheel(CMovingWheel* wheel) {
    cnt_wheel.push_back(wheel);
}
 
void ew::CRenderer::rendering() {
    glClearColor(0.2f, 0.2f, 0.2f, 0.1f);
    glClear(GL_COLOR_BUFFER_BIT);
    std::for_each(cnt_wheel.cbegin(), cnt_wheel.cend(), std::mem_fun(&ew::CMovingWheel::rendering));
    SwapBuffers(hdc);
    Sleep (30);
}
 
void ew::CRenderer::ChangeSize(int width, int height) {
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(- width / 2, width / 2, - height / 2, height / 2, 1.0, -1.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}


CWheel.h
Кликните здесь для просмотра всего текста
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
#ifndef CWHEEL_H_INCLUDED
#define CWHEEL_H_INCLUDED
#include <cstddef>
#include "CTimer.h"
namespace ew {
class CWheel {
public:
    CWheel();
    CWheel(float nw_x, float nw_y, float nw_int_radius, float nw_ext_radius, size_t nw_num_spokes, float nw_speed = 0.0f);
    float setSpeedRotation(float nw_speed);
    float getSpeedRotation();
    void setColor(float nw_r_color, float nw_g_color, float nw_b_color);
    void rendering();
    virtual ~CWheel();
protected:
    CTimer timer;
    float x;
    float y;
    float speed;
    float int_radius;
    float ext_radius;
    size_t num_point;
    size_t num_spokes;
 
    float r_color;
    float g_color;
    float b_color;
};
} //<-- namespace ew
 
 
#endif // CWHEEL_H_INCLUDED


CWheel.cpp
Кликните здесь для просмотра всего текста
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
#include <gl/gl.h>
#include <cmath>
#include <ctime>
#include <iostream>
#include "CWheel.h"
 
ew::CWheel::CWheel() {
}
 
ew::CWheel::CWheel(float nw_x, float nw_y, float nw_int_radius, float nw_ext_radius, size_t nw_num_spokes, float nw_speed):
                    x(nw_x), y(nw_y),  int_radius(nw_int_radius), ext_radius(nw_ext_radius), num_spokes(nw_num_spokes), speed(nw_speed), timer()
{
    num_point = 50;
    r_color = 1.0f;
    g_color = 0.0f;
    b_color = 0.0f;
}
 
float ew::CWheel::setSpeedRotation(float nw_speed) {
    float old_speed = speed;
    speed = nw_speed;
    return old_speed;
}
 
float ew::CWheel::getSpeedRotation() {
    return speed;
}
 
void ew::CWheel::setColor(float nw_r_color, float nw_g_color, float nw_b_color) {
    r_color = nw_r_color;
    g_color = nw_g_color;
    b_color = nw_b_color;
}
 
void ew::CWheel::rendering() {
    float int_coord_x;
    float int_coord_y;
    float ext_coord_x;
    float ext_coord_y;
    const float PI = 3.14f;
 
    glColor3f(r_color, g_color, b_color);
 
    float angle;
    float delta = (2 * PI) / num_point;
 
    angle = 0.0f;
    glBegin(GL_LINE_LOOP);
        for(size_t i = 0; i < num_point; ++i) {
            angle += delta;
            int_coord_x = x + int_radius * cos(angle);
            int_coord_y = y + int_radius * sin(angle);
            glVertex2f(int_coord_x, int_coord_y);
        }
    glEnd();
 
    angle = 0.0f;
    glBegin(GL_LINE_LOOP);
        for(size_t i = 0; i < num_point; ++i) {
            angle += delta;
            ext_coord_x = x + ext_radius * cos(angle);
            ext_coord_y = y + ext_radius * sin(angle);
            glVertex2f(ext_coord_x, ext_coord_y);
        }
    glEnd();
 
    float tic = static_cast<float>(timer.getTic()) / CLOCKS_PER_SEC;
    angle = PI * speed * tic;
    delta = (2 * PI) / num_spokes;
 
    glBegin(GL_LINES);
        for(size_t i = 0; i < num_spokes; ++i) {
            angle += delta;
            int_coord_x = x + int_radius * cos(angle);
            int_coord_y = y + int_radius * sin(angle);
            ext_coord_x = x + ext_radius * cos(angle);
            ext_coord_y = y + ext_radius * sin(angle);
            glVertex2f(int_coord_x, int_coord_y);
            glVertex2f(ext_coord_x, ext_coord_y);
        }
    glEnd();
 
}
 
ew::CWheel::~CWheel() {
}


CMovingWheel.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef CMOVINGWHEEL_H_INCLUDED
#define CMOVINGWHEEL_H_INCLUDED
 
#include "CWheel.h"
 
namespace ew {
class CMovingWheel: public CWheel {
public:
    CMovingWheel(int nw_width, int nw_height);
    void setMove();
    void rendering();
    virtual ~CMovingWheel();
private:
    bool isVisible(float max_x, float max_y);
    float direction;
};
} //<-- namespace ew
 
#endif // CMOVINGWHEEL_H_INCLUDED


CMovingWheel.cpp
Кликните здесь для просмотра всего текста
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
#include <cstdlib>
#include <ctime>
#include <cmath>
#include "CMovingWheel.h"
 
ew::CMovingWheel::CMovingWheel(int nw_width, int nw_height): CWheel() {
    const float PI = 3.14159265f;
    srand(time(NULL));
    x = rand() % nw_width  - nw_width  / 2;
    y = rand() % nw_height - nw_height / 2;
    int_radius = rand() % (nw_width + nw_height) / 20;
    speed = 0.1;
    ext_radius = 2 * int_radius;
    num_spokes = 20; //<--Число спиц
    direction = std::atan2(y, x) ;
}
 
void ew::CMovingWheel::rendering() {
    //if(isVisible()) {
        setMove();
        ew::CWheel::rendering();
    //}
}
 
void ew::CMovingWheel::setMove() {
    const float PI = 3.14159265f;
    float tic = static_cast<float>(timer.getTic()) / 50;
 
    x += speed * tic * sin(direction);
    y += speed * tic * cos(direction);
}
 
bool ew::CMovingWheel::isVisible(float max_x, float max_y) {
    if(  (std::abs(x) + ext_radius > max_x)
       ||(std::abs(y) + ext_radius > max_y)
       )
        return false;
    return true;
}
 
ew::CMovingWheel::~CMovingWheel() {
 
}

Проект полностью в архиве.
Вложения
Тип файла: rar wheels.rar (115.8 Кб, 8 просмотров)
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2224 / 1426 / 420
Регистрация: 16.05.2013
Сообщений: 3,647
Записей в блоге: 6
04.02.2015, 13:53
Проблема благополучно решена...
Вот результат:
Миниатюры
В графическом окне колеса со спицами  
Вложения
Тип файла: rar wheels.rar (174.1 Кб, 19 просмотров)
0
0 / 0 / 0
Регистрация: 03.06.2015
Сообщений: 72
16.05.2016, 22:18
А как сделать 4 спицы для 1 программы?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
16.05.2016, 23:22
Цитата Сообщение от elllkk Посмотреть сообщение
для 1 программы?
C++
129
rand()%12 + 4 , //Кол-во спиц
соответственно поменять на 4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2016, 23:22
Помогаю со студенческими работами здесь

Работа с массивом в графическом окне
Столкнулся с проблемой заполнения массива матрицы в новом окне (работал в CodeBlocks-EP). В файле Определитель - основное содержится...

Создать кнопки в графическом окне
Всем привет! Есть вопрос: как реализовать работающие кнопки-объекты в графическом окне? Нет, сейчас я имею ввиду не OnMouseDown, т.к. мне...

Игра в слова (в графическом окне).
Играют двое. Первый игрок загадывает слово и вводит его в программу с клавиатуры. Программа рисует в центре (по высоте и ширине)...

Ввод текста в графическом окне
Почему не получается ввести текст в графическом окне, используя read? Один раз получается, а при последующих попытках ввести текст строка...

Вывод значения переменной в графическом окне
Всем привет. В общем захотелось присобачить таймер в графическом окне, ведущий отсчёт секунд с начала запуска программы. Но вот...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru