Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11

Танчики

15.03.2020, 18:11. Показов 7529. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста.
В данном языке не силен, так что некоторых тонкостей не знаю, поэтому не нужно ругаться на мои ошибки, если они есть.
Хочу написать небольшую игрушку по типу "Танчики" на двоих.
Пока в процессе, это пром. результат.
1-й игрок управляет клавишами W, A, S, D, 2-й - стрелки.
Возникла проблема, что перемещение 2-х "танков" одновременно не работает, перемещается только один из них. Как это можно решить и можно ли вообще?
Pascal
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
uses ABCObjects, GraphABC;
 
var
    tank,tank2:PictureABC;
    shag:=10;
    Rectangle:BoundedObjectABC;
 
procedure MoveTanks(key:integer);
begin
  case key of
    VK_Escape: window.Close;
    VK_Right:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tankRight.jpg');
        if tank.Left+tank.Width-40<=windowWidth then
          tank.Left:=tank.Left+shag;
      end;
    VK_Down:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tankDown.jpg');
        if tank.Top+tank.Height-40<=windowHeight then
          tank.Top:=tank.Top+shag;
      end;
    VK_Left:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tankLeft.jpg');
        if tank.Left>=-40 then
          tank.Left:=tank.Left-shag
      end;
    VK_Up:
      begin
        tank.Destroy;
        tank:=PictureABC.Create(tank.Left,tank.Top,'tank.jpg');
        if tank.Top>=-40 then
          tank.Top:=tank.Top-shag;
      end;
    VK_D:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2Right.jpg');
        if tank2.Left+tank2.Width-40<=windowWidth then
          tank2.Left:=tank2.Left+shag;
      end;
    VK_S:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2Down.jpg');
        if tank2.Top+tank2.Height-40<=windowHeight then
          tank2.Top:=tank2.Top+shag;
      end;
    VK_A:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2Left.jpg');
        if tank2.Left>=-40 then
          tank2.Left:=tank2.Left-shag
      end;
    VK_W:
      begin
        tank2.Destroy;
        tank2:=PictureABC.Create(tank2.Left,tank2.Top,'tank2.jpg');
        if tank2.Top>=-40 then
          tank2.Top:=tank2.Top-shag;
      end;
  end;
end;
 
procedure OutButton(x,y,mb:integer);
begin
  case mb of 
    1:
      begin
        if (x>=10) and (x<=Rectangle.Width+10) and (y>=10) and (y<=Rectangle.Height+10) then
          window.Close;
      end;
  end;
end;
 
begin
  window.Width:=736;
  window.Height:=736;
  window.Fill('font for tanks.jpg');
  window.Caption:='MyGame';
  tank:=PictureABC.Create(WindowWidth div 2 - 135,WindowHeight - 210,'tank.jpg');
  tank2:=PictureABC.Create(WindowWidth div 2 - 135,-60,'tank2Down.jpg');
  OnMouseDown:=OutButton;
  OnKeyDown:=MoveTanks;
  Rectangle:=RectangleABC.Create(10,10,50,20,clred);
  TextOut(26,12,'Out');
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2020, 18:11
Ответы с готовыми решениями:

Обработка столкновений в игре "Танчики"
Здравствуйте, ув. форумчане! Мне нужна помощь с обработкой столкновений (коллизией) в игре &quot;Танчики&quot;. Есть карта (13х13),...

Танчики на С++
Загорелся идеей реализовать стандартные тетрисовские танчики на с++. Но так как я только начал самообучение с++, то решил обратится за...

Танчики
Здравствуйте помогите сделать программу типа игры танчики только еще проще чтобы танк тупо катался ко карте без стрельбы и врагов буду...

15
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
16.03.2020, 09:38
приложите, пожалуйста, архив с картинками
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
16.03.2020, 11:28  [ТС]
Вот картинки.
Вложения
Тип файла: rar textures.rar (83.9 Кб, 35 просмотров)
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
16.03.2020, 14:01
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от SqueeZee Посмотреть сообщение
Возникла проблема, что перемещение 2-х "танков" одновременно не работает, перемещается только один из них. Как это можно решить и можно ли вообще?
вот тут есть решение вашей проблемы - https://www.cyberforum.ru/post8879449.html
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
16.03.2020, 20:36  [ТС]
Благодарю. Пошел разбираться.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
17.03.2020, 09:36
Цитата Сообщение от SqueeZee Посмотреть сообщение
Благодарю. Пошел разбираться.
не за что. Если возникнут проблемы - возвращайся, будем все вместе разбираться
1
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
17.03.2020, 20:57
SqueeZee, Нашел маленький косяк в реализации вашей кнопки,если одним из танков проехаться по вашей "кнопке",то текст кнопки стирается
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
17.03.2020, 21:16  [ТС]
Да, действительно. А я и не заметил. Спасибо!
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
17.03.2020, 21:36
Если хотите,что бы была нормальная кнопка,используйте модуль ABCButtons -> класс Button ABC,или наоборот,удачи.
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
18.03.2020, 18:19  [ТС]
Хмм. Впервые слышу об этом модуле.
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
19.03.2020, 23:30  [ТС]
Уже не знаю, что делать. Не могу решить проблему. Пишу игру "Танчики" с менюшкой. В меню 3 кнопки: Старт, Настройки, и Выход. Если нажать на Настройки, то все кнопки уничтожаются и появляются новые 2 - Высокие текстуры танчика и Низкие. По идее, на этом этапе прога должна ждать нажатия на одну из этих кнопок, но у меня, как только нажимаю на Настройки, за одну секунду уничтожаются все кнопки, создаются 2 кнопки (Высокие и Низкие текстуры), они уничтожаются и создаются 3 кнопки из меню. Я даже не успеваю выбрать качество текстур танчика. Надеюсь, понятно объяснил. Нужна помощь.
Pascal
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
uses GraphABC, ABCObjects, ABCButtons;
 
var
  OutButton,StartButton,OptionButton,HighTextureButton,LowTextureButton:ButtonABC;
  flagForTexture:boolean;
  tank:PictureABC;
  shag:=10;
  
 
procedure Buttons;
begin
  StartButton:=ButtonABC.Create(WindowWidth div 2 - 100,WindowHeight div 2 - 150,200,50,'Start',clred);
  OptionButton:=ButtonABC.Create(WindowWidth div 2 - 100,WindowHeight div 2 - 50,200,50,'Options',clred);
  OutButton:=ButtonABC.Create(WindowWidth div 2 - 100,WindowHeight div 2 + 50,200,50,'Out',clred);
end;
 
procedure MoveTanks(key:integer);
begin
  tank.Destroy;
  case key of
    VK_Right: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tankRight.jpg');
            if tank.Left+tank.Width-40<=windowWidth then
              tank.Left:=tank.Left+shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLowRight.png');
              if tank.Left+tank.Width-40<=windowWidth then
                tank.Left:=tank.Left+shag;
            end;
      end;
    VK_Down: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tankDown.jpg');
            if tank.Top+tank.Height-40<=windowHeight then
              tank.Top:=tank.Top+shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLowDown.png');
              if tank.Top+tank.Height-40<=windowHeight then
                tank.Top:=tank.Top+shag;
            end;
      end;
    VK_Left: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tankLeft.jpg');
            if tank.Left>=-40 then
              tank.Left:=tank.Left-shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLowLeft.png');
              if tank.Left>=-40 then
                tank.Left:=tank.Left-shag;
            end;
      end;
    VK_Up: 
      begin
        if flagForTexture then
          begin
            tank:=PictureABC.Create(tank.Left,tank.Top,'HighTextures/tank.jpg');
            if tank.Top>=-40 then
              tank.Top:=tank.Top-shag;
          end else
            begin
              tank:=PictureABC.Create(tank.Left,tank.Top,'LowTextures/tankLow.png');
              if tank.Top>=-40 then
                tank.Top:=tank.Top-shag;
            end;
      end;
    VK_Escape:
      begin
        CloseWindow;
      end;
  end;
end;
 
procedure DestroyButtons;
begin
  StartButton.Destroy;
  OptionButton.Destroy;
  OutButton.Destroy;
end;
 
procedure StartGame;
begin
  Window.Width:=736;
  Window.Height:=736;
  Window.Caption:='Tanks';
  DestroyButtons;
  Window.Fill('font for tanks.jpg');
  if flagForTexture then
    tank:=PictureABC.Create(WindowWidth div 2 - 135,WindowHeight div 2 - 200,'HighTextures/tank.jpg')
    else
      tank:=PictureABC.Create(WindowWidth div 2 - 135,WindowHeight div 2 - 200,'LowTextures/tankLow.png');
  OnKeyDown:=MoveTanks;
end;
 
procedure Out := CloseWindow;
 
procedure High := flagForTexture:=true;
 
procedure Low := flagForTexture:=false;
 
procedure TextureButtons;
begin
  HighTextureButton:=ButtonABC.Create((WindowWidth div 2) div 2 - 100,WindowHeight div 2 - 25,200,50,'High Textures',clred);
  LowTextureButton:=ButtonABC.Create(WindowWidth div 2 + (WindowWidth div 2) div 2 - 100,WindowHeight div 2 - 25,200,50,'Low Textures',clred);
  HighTextureButton.OnClick:=High;
  LowTextureButton.OnClick:=Low;
end;
 
procedure Options;
begin
  Window.Caption:='Options';
  DestroyButtons;
  TextureButtons;
  HighTextureButton.Destroy;
  LowTextureButton.Destroy;
  Buttons;
  StartButton.OnClick:=StartGame;
  OptionButton.OnClick:=Options;
  OutButton.OnClick:=Out;
  Window.Caption:='Menu';
end;
 
begin
  window.Width:=900;
  window.Height:=600;
  Window.Caption:='Menu';
  window.Fill('fontMenu.jpg');
  Buttons;
  StartButton.OnClick:=StartGame;
  OptionButton.OnClick:=Options;
  OutButton.OnClick:=Out;
end.
Вложения
Тип файла: rar Tanks.rar (165.3 Кб, 41 просмотров)
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
20.03.2020, 15:24
Лучший ответ Сообщение было отмечено SqueeZee как решение

Решение

SqueeZee, Держите,исправил кое-что
Pascal
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
uses GraphABC, ABCObjects, ABCButtons;
 
var
  OutButton, StartButton, OptionButton, HighTextureButton, LowTextureButton: ButtonABC;
  flagForTexture: boolean;
  tank: PictureABC;
  shag := 10;
 
 
procedure Buttons;
begin
  StartButton := ButtonABC.Create(WindowWidth div 2 - 100, WindowHeight div 2 - 150, 200, 50, 'Start', clred);
  OptionButton := ButtonABC.Create(WindowWidth div 2 - 100, WindowHeight div 2 - 50, 200, 50, 'Options', clred);
  OutButton := ButtonABC.Create(WindowWidth div 2 - 100, WindowHeight div 2 + 50, 200, 50, 'Out', clred);
end;
 
procedure MoveTanks(key: integer);
begin
  tank.Destroy;
  case key of
    VK_Right: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tankRight.jpg');
          if tank.Left + tank.Width - 40 <= windowWidth then
            tank.Left := tank.Left + shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLowRight.png');
          if tank.Left + tank.Width - 40 <= windowWidth then
            tank.Left := tank.Left + shag;
        end;
      end;
    VK_Down: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tankDown.jpg');
          if tank.Top + tank.Height - 40 <= windowHeight then
            tank.Top := tank.Top + shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLowDown.png');
          if tank.Top + tank.Height - 40 <= windowHeight then
            tank.Top := tank.Top + shag;
        end;
      end;
    VK_Left: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tankLeft.jpg');
          if tank.Left >= -40 then
            tank.Left := tank.Left - shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLowLeft.png');
          if tank.Left >= -40 then
            tank.Left := tank.Left - shag;
        end;
      end;
    VK_Up: 
      begin
        if flagForTexture then
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'HighTextures/tank.jpg');
          if tank.Top >= -40 then
            tank.Top := tank.Top - shag;
        end else
        begin
          tank := PictureABC.Create(tank.Left, tank.Top, 'LowTextures/tankLow.png');
          if tank.Top >= -40 then
            tank.Top := tank.Top - shag;
        end;
      end;
    VK_Escape:
      begin
        CloseWindow;
      end;
  end;
end;
 
procedure ButtonsConfig(Vis: boolean);
begin
  StartButton.Visible := Vis;
  OptionButton.Visible := Vis;
  OutButton.Visible := Vis;
end;
 
procedure StartGame;
begin
  Window.Width := 736;
  Window.Height := 736;
  Window.Caption := 'Tanks';
  ButtonsConfig(false);
  Window.Fill('font for tanks.jpg');
  if flagForTexture then
    tank := PictureABC.Create(WindowWidth div 2 - 135, WindowHeight div 2 - 200, 'HighTextures/tank.jpg')
  else
    tank := PictureABC.Create(WindowWidth div 2 - 135, WindowHeight div 2 - 200, 'LowTextures/tankLow.png');
  OnKeyDown := MoveTanks;
end;
 
procedure Out := CloseWindow;
 
procedure High;
begin
  flagForTexture := true;
  HighTextureButton.Visible := false;
  LowTextureButton.Visible := false;
  ButtonsConfig(true);
end;
 
procedure Low;
begin
  flagForTexture := false;
  LowTextureButton.Visible := false;
  HighTextureButton.Visible := false;
  ButtonsConfig(true);
end;
 
procedure TextureButtons;
begin
  HighTextureButton := ButtonABC.Create((WindowWidth div 2) div 2 - 100, WindowHeight div 2 - 25, 200, 50, 'High Textures', clred);
  LowTextureButton := ButtonABC.Create(WindowWidth div 2 + (WindowWidth div 2) div 2 - 100, WindowHeight div 2 - 25, 200, 50, 'Low Textures', clred);
  HighTextureButton.OnClick += High;
  LowTextureButton.OnClick += Low;
end;
 
procedure Options;
begin
  Window.Caption := 'Options';
  ButtonsConfig(false);
  TextureButtons;
  Window.Caption := 'Menu';
end;
 
begin
  window.Width := 900;
  window.Height := 600;
  Window.Caption := 'Menu';
  window.Fill('fontMenu.jpg');
  Buttons;
  StartButton.OnClick += StartGame;
  OptionButton.OnClick += Options;
  OutButton.OnClick += Out;
end.
Добавлено через 1 минуту
Если что-то не понятно,спрашивайте
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 11
20.03.2020, 20:53  [ТС]
Большое спасибо! Гуглил, в справочнике лазал - ничего не было про этот модуль. Ну как не было, в справке было, только я оттуда ничего не понял.
1 вопрос: почему, когда вы вызываете процедуру -
Pascal
1
ExampleButton.OnClick += Example;
- пишите "+=", а не ":=" ?
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
20.03.2020, 21:13
Если честно,не знаю,как-то раз Sun Serega сказал,с тех пор и использую.Но,когда использую System.Windows.Forms,тут нельязя писать так.Например,этот код должен вызвать ошибку:
Pascal
1
2
3
4
5
6
7
{$reference System.Windows.Forms}
uses System.Windows.Forms;
begin
 var f := new Form;
 var b := new Button:
 b.Click:=()->begin end;
end.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
21.03.2020, 07:30
Это должно вызывать ошибку ещё и потому, что обработчик Button.Click, как обработчик любого другого ивента в .Net, должен принимать 2 параметра. Правильно b.Click += (o,e)->begin end;.

А := не должно применяться к ивентам потому, что := удаляет предыдущее значение, а += добавляет ещё 1 обработчик к тому что есть. В больших программах легко забыться и написать в 2 местах :=. А поймать потом такой баг - будет очень сложно. Ну и в маленьких программах привыкать не стоит.

Ну и да, поля-ивенты (как Button.Click) полностью запрещают применять к ним :=, то есть код с := даже не откомпилируется.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
21.03.2020, 07:36
Sun Serega, на счет Buttons.Click+=()->begin end;
Да,я забыл про это,с телефона пилсал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2020, 07:36
Помогаю со студенческими работами здесь

Танчики C++
Здравствуйте! Пишу курсовую. Сроки уже горят. Нужно завтра сдать, а я так и не успел ничего. :cry:Поделитесь, пожалуйста, исходным кодом...

танчики
здравствуйте, решил попробовать сделать подобие денди-танчиков. Ну и только начал - сразу грабли)) Вопрос: Как лучше оформить движение...

Игрушка Танчики
у меня есть 1 свой танк, 2 вражеских. и сейчас если один вражеский попадет в другого вражеского, то подстреленный исчезает и выходит конец...

Игра танчики
Нужно приложение танчики в программном продукте Lazarus... Задали курсовую на эту тему, а я пропустил весь курс ...

Игра Танчики
всем доброго дня суток)не могли бы кто подсказать может кто сталкивался уже надо исходник игры танчики на плюсах чёт порылся в нете не...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 17.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 14.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru