Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/64: Рейтинг темы: голосов - 64, средняя оценка - 4.53
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916

Программа - поздравление

30.12.2016, 17:44. Показов 13998. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хо-хо если вы снова думали, что это студент который не справился с лабой, то нет Заранее прошу прощение за название темы и прошу не злится админов хочу поздравить всех тех кто зашел сюда с наступающим и вот вам немножко бредовой но радости сегодня
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <vector>
#include <time.h>
 
namespace Colors {
    const WORD white = 0x07;
    const WORD black = 0x00;
    const WORD green = 0x0a;
    const WORD blue = 0x0c;
    const WORD red = 0x0b;
};
 
HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
 
class Snow {
private:
    static const int consoleW = 120, consoleH = 28;
    bool wiggleDirrection;
    int x, y, wiggleCenter, wiggleRatio;
 
public:
    Snow(void) : x(1 + rand() % consoleW - 1),
        y(rand() % consoleH), wiggleDirrection(rand() % 2),
        wiggleCenter(x), wiggleRatio(1 + rand() % 5) {}
 
    void draw(void) {
        COORD cPos;
        cPos.X = x;
        cPos.Y = y;
        SetConsoleCursorPosition(consoleHandle, cPos);
        SetConsoleTextAttribute(consoleHandle, Colors::white);
        printf("*");
    }
 
    void move(void) {
        if (y == consoleH)
            y = 0;
 
        wiggleDirrection ? x += 1 : x -= 1;
 
        y += 1;
        if (abs(wiggleCenter - x) == wiggleRatio)
            wiggleDirrection = !wiggleDirrection;
    }
 
    int getX(void) const { return x; }
    int getY(void) const { return y; }
    
};
 
class Festoon {
private:
    int fromX, fromY, toX, toY, colour, firstColour, secondColour;
public:
    Festoon(int x1, int y1, int x2, int y2, int colour) : fromX(x1), fromY(y1),
        toX(x2), toY(y2), colour(colour), firstColour(Colors::red), secondColour(Colors::blue) {}
 
    void draw(void) {
        COORD cPos;
        cPos.X = fromX;
        cPos.Y = fromY;
        while (cPos.X != toX - 1 && cPos.Y != toY - 1) {
            SetConsoleTextAttribute(consoleHandle, colour);
            SetConsoleCursorPosition(consoleHandle, cPos);
            printf("");
            cPos.Y += 1;
            if (cPos.Y % 2)
                SetConsoleTextAttribute(consoleHandle, firstColour);
            else
                SetConsoleTextAttribute(consoleHandle, secondColour);
 
            printf("*");
            SetConsoleCursorPosition(consoleHandle, cPos);
            printf("*");
            cPos.X += 1;
        }
        std::swap(firstColour, secondColour);
    }
};
 
void message(void) {
    COORD cPos;
    cPos.X = 45;
    cPos.Y = 15;
    SetConsoleTextAttribute(consoleHandle, Colors::white);
    SetConsoleCursorPosition(consoleHandle, cPos);
    printf("С наступающим, Cyberforum !!!");
}
 
int main(int argc, char *argv[]) {
    const int snowFlakesCount = 25;
    const int sleepDelay = 250;
 
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
 
    CONSOLE_CURSOR_INFO structCursorInfo;
    GetConsoleCursorInfo(consoleHandle, &structCursorInfo);
    structCursorInfo.bVisible = FALSE;
    SetConsoleCursorInfo(consoleHandle, &structCursorInfo);
 
    Festoon firstFestoon(105, 0, 45, 15, Colors::green);
    std::vector<Snow> snowFlackes;
    for (int i = 0; i < snowFlakesCount; ++i)
        snowFlackes.push_back(Snow());
 
    while (true) {
 
        for (int i = 0; i < snowFlackes.size(); ++i) {
            snowFlackes[i].draw();
            snowFlackes[i].move();
        }
        firstFestoon.draw();
        message();
        Sleep(sleepDelay);
        SetConsoleTextAttribute(consoleHandle, Colors::black);
        system("cls");
    }
 
    return EXIT_SUCCESS;
}


P.S желательно заранее поставить размеры консоли 120х30 чтобы все отоброжалось корректно

Добавлено через 3 минуты
P.P.S в 67 строке форум убирает один слэш, придется вам самим его поставить
7
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.12.2016, 17:44
Ответы с готовыми решениями:

Поздравление сотрудников с днем рождения - не открывать поздравление, если нет именинников на этот день
Решил в базе сделать автоматическое поздравление сотрудников (пользовался примерами участников форума, если вдруг кто найдет похожесть с...

Программа, запрашивающая дату рождения пользователя и выводящая поздравление - помогите найти ошибку
Sub hj() Dim a As Date Dim b As Date Dim k As Double Dim b1 As Double Dim X As Double Dim Y As Double a = Date b =...

Поздравление в HTLM
Всем привет! Вот задумался сделать новогоднее поздравление в HTLM. Немного получается, но увы дешево, как говорится. Может кто поддаст идею...

25
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
30.12.2016, 17:52
obivan, нифига се!) нормальная тема))
Правда в 68 строчке проскользнула небольшая ошибочка, лечится
C++
1
printf(R"(\)");
1
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
30.12.2016, 17:52  [ТС]
Ferrari F1,

Не по теме:

угу там форум просто ломается когда ставил \ там все красным начинало выделятся, и когда \\ ставил как в коде было автоправка форума затирала, честно не знал как решить, спасибо что подсказали и рад что смог вас чуть чуть порадовать :)

0
30.12.2016, 18:01

Не по теме:

Цитата Сообщение от obivan Посмотреть сообщение
не знал как решить
[CPP]"\\\"[/CPP]
C++
1
"\\"

0
30.12.2016, 18:03  [ТС]

Не по теме:

Цитата Сообщение от GbaLog- Посмотреть сообщение
C++
1
"\\"
спасибо запомню :)

0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
30.12.2016, 18:27
Цитата Сообщение от obivan Посмотреть сообщение
жаль что название темы поменяли все таки, такое провакационное было
Мы хоть и не админы, но каждый день уже который год на это смотреть больно.
Поэтому, не обессудьте за порчу вашего творческого замысла

Спасибо за поздравления, и вас наступающим!
1
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
30.12.2016, 18:34  [ТС]
tezaurismosis,
Цитата Сообщение от tezaurismosis Посмотреть сообщение
но каждый день уже который год на это смотреть больно
понимаю вас приятно, что смог порадовать вас
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
30.12.2016, 18:36
С наступающим, господа и дамы!
1
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
30.12.2016, 18:39
С Наступающим, начинающие и не очень!!!
1
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
30.12.2016, 18:39
obivan, красиво получилось
1
30.12.2016, 18:42  [ТС]

Не по теме:

Peoples, хотел на opengl в 3д чо нить запилить, но это уже в следущий раз, просто поздновато надумал делать :) рад что понравилось (обещаю в следущий раз в 3д :rose:)

0
30.12.2016, 18:43

Не по теме:

а можно для ламеров типа меня, но по долгу так сказать службы форуму заходящих в раздел - скриншотик того что выводит программа :-[

0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
30.12.2016, 18:46  [ТС]
magirus, вот, снег и герлянда анимированы , тоже думал что не все смогут посмотреть, например те кто на линуксе сидят, жалко что не увидите сами, но вот
Миниатюры
Программа - поздравление  
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
30.12.2016, 19:44
Поздравляю всех с наступающим всех формучан!
source
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
41
42
43
44
45
46
#include "HappyNewYear.hpp"
 
int main() 
{
    const int windowWidth = 600;
    const int windowHeight = 500;
    sf::RenderWindow win(sf::VideoMode(windowWidth, windowHeight), "Happy new Year!");
    win.setFramerateLimit(50);
    
    auto parts = SimpleParticlesBuilder::create()
        .add(std::make_tuple("snow.png", sf::IntRect(0, 0, 32, 32), 10))
        .add(std::make_tuple("snow.png", sf::IntRect(33, 33, 32, 32), 10))
        .setSpeed(0.5f)
        .setWindowParams(windowWidth, windowHeight)
        .build();
    
    sf::Font font;
    sf::Text text;
    if(!font.loadFromFile("PTC75F.ttf"))
        return -1;
    
    text.setFont(font);
    text.setString(L"С Новым годом, Cyberforum!");
    text.setFillColor(sf::Color(54, 226, 92));
    text.setPosition(90, windowHeight / 2 - 30);
        
    while (win.isOpen())
    {
        parts.update();
 
        sf::Event event;
        while(win.pollEvent(event))
        {
            if(sf::Event::Closed == event.type)
                win.close();
        }
        
        win.clear(sf::Color(2, 41, 232));
 
        for( const auto& it : parts.getSprites() )
            win.draw(it);
        win.draw(text);
 
        win.display();
    }
}

simple_particles.hpp
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
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
/////////////////////////////////////////////////////////////////////////////////////////
// Created by GbaLog
// Link on github.com: [url]https://github.com/GbaLog/[/url]
/////////////////////////////////////////////////////////////////////////////////////////
#ifndef SIMPLE_PARTICLES
#define SIMPLE_PARTICLES
/////////////////////////////////////////////////////////////////////////////////////////
#include <SFML/Graphics.hpp>
#include <cmath>
#include <ctime>
#include <random>
#include <string>
#include <stdexcept>
#include <vector>
#include <tuple>
 
#include "timer.hpp"
/////////////////////////////////////////////////////////////////////////////////////////
class SimpleParticles
{
 
public:
 
    SimpleParticles(
        std::vector<std::tuple<std::string, sf::IntRect, unsigned>>&& data,
        int windowWidth,
        int windowHeight,
        float speed
    )
        :
        speed(speed),
        windowWidth(windowWidth),
        windowHeight(windowHeight),
        sprites{}
    {
        for( const auto& it : data )
            add(std::get<0>(it), std::get<1>(it), std::get<2>(it));
    }
 
    void setSpeed( const float speed )
    {
        this->speed = speed;
    }
 
    void setWindowParams( const int windowWidth, const int windowHeight )
    {
        this->windowWidth = windowWidth;
        this->windowHeight = windowHeight;
 
        for( auto& it : sprites )
        {
            it.setPosition(random(0, windowWidth), random(0, windowHeight));
        }
    }
 
    void add( const std::string& filename, const sf::Rect<int>& rect, unsigned count )
    {
        sf::Texture* texture = new sf::Texture;
        if( !texture->loadFromFile(filename, rect) )
        {
            throw std::invalid_argument("File does not exists\n");
        }
 
        textures.push_back(texture);
 
        sf::Sprite tmp;
        tmp.setTexture(*texture);
        //adding alpha canal to color sprite
        /* sf::Color clr( tmp.getColor() );
        clr.a = 63;
 
        tmp.setColor(clr); */
        //set origin by center
        tmp.setOrigin(rect.width / 2, rect.height / 2);
 
        for( size_t it{}; it < count; ++it )
        {
            tmp.setPosition(random(0, windowWidth), random(0, windowHeight));
            sprites.push_back(tmp);
 
            angles.emplace_back(static_cast<float>(random(0, 360) * 2 * PI / 360.f));
        }
 
    }
 
    const std::vector<sf::Sprite>& getSprites() const
    {
        return sprites;
    }
 
    void update()
    {
        float factor = speed * (timer.get_elapsed_time<tools::milliseconds>() / 10.f);
        for( size_t it{}; it < sprites.size(); ++it )
        {
            sprites[it].move(std::cos(angles[it]) * factor, std::sin(angles[it]) * factor);
 
            //check collision with walls
            if( sprites[it].getPosition().x - sprites[it].getOrigin().x < 0 )
            {
                angles[it] = PI - angles[it];
                sprites[it].setPosition(
                    sprites[it].getOrigin().x + 1,
                    sprites[it].getPosition().y
                );
            }
            if( sprites[it].getPosition().x + sprites[it].getOrigin().x > windowWidth+1 )
            {
                angles[it] = PI - angles[it];
                sprites[it].setPosition(
                    windowWidth - sprites[it].getOrigin().x + 1,
                    sprites[it].getPosition().y
                );
            }
            if( sprites[it].getPosition().y - sprites[it].getOrigin().y < 0 )
            {
                angles[it] = -angles[it];
                sprites[it].setPosition(
                    sprites[it].getPosition().x,
                    sprites[it].getOrigin().y + 1
                );
            }
            if( sprites[it].getPosition().y + sprites[it].getOrigin().y > windowHeight+1 )
            {
                angles[it] = -angles[it];
                sprites[it].setPosition(
                    sprites[it].getPosition().x,
                    windowHeight - sprites[it].getOrigin().y + 1
                );
            }
 
            sprites[it].rotate(1);
        }
        timer.restart();
    }
 
private:
 
    //simple random function
    float random( float from, float to )
    {
        // static std::mt19937 gen( std::time(nullptr) );
        static std::mt19937 gen( std::chrono::system_clock::now().time_since_epoch().count() );
        std::uniform_real_distribution<> dist( from, to );
        return dist(gen);
    }
 
    tools::Timer timer;
    float speed;
    int windowWidth;
    int windowHeight;
    std::vector<sf::Texture*> textures;
    std::vector<sf::Sprite> sprites;
    std::vector<float> angles;
 
    constexpr static float PI = 3.14159f;
};
/////////////////////////////////////////////////////////////////////////////////////////
class SimpleParticlesBuilder
{
public:
 
    SimpleParticlesBuilder()
        :
        data{},
        windowWidth{},
        windowHeight{},
        speed{10.f}
    {}
 
 
    static SimpleParticlesBuilder create()
    {
        return SimpleParticlesBuilder{};
    }
 
    SimpleParticlesBuilder& add( const std::tuple<std::string, sf::IntRect, unsigned>& newElement )
    {
        data.push_back(newElement);
        return *this;
    }
 
    SimpleParticlesBuilder& add( std::tuple<std::string, sf::IntRect, unsigned>&& newElement )
    {
        data.emplace_back(std::forward<decltype(newElement)>(newElement));
        return *this;
    }
 
    SimpleParticlesBuilder& add( const std::string& filename, const sf::IntRect& rect, const unsigned count )
    {
        data.emplace_back(std::make_tuple(filename, rect, count));
        return *this;
    }
 
    SimpleParticlesBuilder& setWindowParams( const int windowWidth, const int windowHeight )
    {
        this->windowWidth = windowWidth;
        this->windowHeight = windowHeight;
        return *this;
    }
 
    SimpleParticlesBuilder& setSpeed( const float speed )
    {
        this->speed = speed;
        return *this;
    }
 
    SimpleParticles build()
    {
        return SimpleParticles( std::move(data), windowWidth, windowHeight, speed );
    }
private:
    std::vector<std::tuple<std::string, sf::IntRect, unsigned>> data;
    int windowWidth;
    int windowHeight;
    float speed;
};
/////////////////////////////////////////////////////////////////////////////////////////
//
//    example using SimpleParticlesBuilder:
//
//      auto parts =
//          SimpleParticlesBuilder::create()
//            .add("img.png", sf::IntRect(0, 0, 32, 32), 33)
//            .setWindowParams(800, 600)
//            .setSpeed(10.f)
//            .build();
//
/////////////////////////////////////////////////////////////////////////////////////////
#endif //SIMPLE_PARTICLES
/////////////////////////////////////////////////////////////////////////////////////////

timer.hpp
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
/////////////////////////////////////////////////////////////////////////////////////////
// Created by GbaLog
// Link on github.com: [url]https://github.com/GbaLog/[/url]
/////////////////////////////////////////////////////////////////////////////////////////
#ifndef TIMER_HPP
#define TIMER_HPP
/////////////////////////////////////////////////////////////////////////////////////////
#include <chrono>
/////////////////////////////////////////////////////////////////////////////////////////
namespace tools
{
/////////////////////////////////////////////////////////////////////////////////////////
    using nanoseconds   = std::chrono::nanoseconds;
    using microseconds  = std::chrono::microseconds;
    using milliseconds  = std::chrono::milliseconds;
    using seconds       = std::chrono::seconds;
    using minutes       = std::chrono::minutes;
    using hours         = std::chrono::hours;
/////////////////////////////////////////////////////////////////////////////////////////
    class Timer
    {
        //-------------------------------------------------------------------------------
    public:
        //-------------------------------------------------------------------------------
        using clock      = std::chrono::system_clock;
        using time_point = clock::time_point;
        //-------------------------------------------------------------------------------
        Timer()
            :
            start_time{ clock::now() }
        {}
        //-------------------------------------------------------------------------------
        template<typename _Time>
        bool gone( _Time&& time )
        {
            return (clock::now() - start_time) >= time;
        }
        //-------------------------------------------------------------------------------
        template<typename _Time>
        bool restart( _Time&& time )
        {
            auto tmp_start = start_time;
            start_time = clock::now();
            return (start_time - tmp_start) >= time;
        }
        //-------------------------------------------------------------------------------
        time_point restart()
        {
            auto tmp_start = start_time;
            start_time = clock::now();
            return tmp_start;
        }
        //-------------------------------------------------------------------------------
        template<typename _Duration>
        inline typename _Duration::rep get_elapsed_time() const
        {
            return std::chrono::duration_cast<_Duration>(clock::now() - start_time).count();
        }
        //-------------------------------------------------------------------------------
    private:
        //-------------------------------------------------------------------------------
        time_point start_time;
        //-------------------------------------------------------------------------------
    };
/////////////////////////////////////////////////////////////////////////////////////////
} //tools
/////////////////////////////////////////////////////////////////////////////////////////
#endif //TIMER_HPP
/////////////////////////////////////////////////////////////////////////////////////////
Вложения
Тип файла: zip HappyNewYear.zip (893.6 Кб, 45 просмотров)
2
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
30.12.2016, 19:48  [ТС]
GbaLog-, хехе круто скиньте тоже пожалуйта скриншот, а то ругается что dll нет
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
30.12.2016, 19:49
Цитата Сообщение от obivan Посмотреть сообщение
ругается что dll нет
Странно, я же положил...
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
30.12.2016, 19:49  [ТС]
GbaLog-, там на gcc шные какие-то я просто сейчас с ноута, а тут только студия
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
30.12.2016, 19:51
GbaLog-, ПРОСИМ!!! ПРОСИМ!!!
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
30.12.2016, 19:54
Цитата Сообщение от obivan Посмотреть сообщение
там на gcc шные какие-то
Точно, но я не лишу никого удовольствия насладиться этим самому!
Вложения
Тип файла: zip HappyNewYear.zip (1.38 Мб, 41 просмотров)
1
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
30.12.2016, 19:57  [ТС]
GbaLog-, спасибо вам, выглядит хорошо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.12.2016, 19:57
Помогаю со студенческими работами здесь

ПОЗДРАВЛЕНИЕ С 8-М МАРТА!
Женщинам в супер теплый март 2020года В этот день, весной согретый Все цветы, улыбки Вам! Чтоб печали Вы не знали, Даже легкой...

Поздравление псевдографикой
Ребята а давайте замутим новогоднее поздравление псевдографикой. Чтобы кидаешь ты такой скрипт корешу а у него в терминале поздравлюха. ...

VBS ПОЗДРАВЛЕНИЕ
Добрый день, участники форума! Хочу реализовать простой скрипт для поздравления девушки с 14 февраля.То есть чтобы он сам запустился в этот...

Заставка-поздравление
Хочу ребенку подарить планшетник с андроидом (4.2) и чтобы при запуске появлялась красивая картинка-поздравление. Кто знает, гда можно...

Поздравление с 8 марта
Здравствуйте , возникла такая идея поздравить всех пользователей домена с 8 марта, хотелось бы чтоб при загрузке профиля выскакивала...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru