Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309

Проблема с 2D аркадой

30.04.2011, 22:48. Показов 1693. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Робяты у меня ппц... полный, кризис жанра! вобщем я ворзнамерился написать 2D аркаду(а иначе у меня программинг не учиться тока так ставя перед собой сложные задачи и решая их я и могу учиться). Игра примитиф летит самолетик постояно стреляет патронами... мочиво пиф-паф итд. В чем собсно трабл? а вот в чем я незнаю как зделать так чтоб постояно стрелял патриками... подскажыте.Уже все перепробовал и через масиви и через таймер итд... нефига невыходит. Прилагаю код + екзешник.
Delphi
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
unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ExtCtrls, Menus;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    MenuItem4: TMenuItem;
    MenuItem5: TMenuItem;
    Timer1: TTimer;
    procedure FormActivate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure MenuItem5Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1;
  background,spr1,bullet: TBitmap;
  x1,y1,y2,i:integer;
implementation
 
{ TForm1 }
 
procedure TForm1.FormActivate(Sender: TObject);
begin
 bullet:=TBitmap.Create;
 spr1:= TBitmap.Create;
 background :=TBitmap.Create;
 background.LoadFromFile('Data/background.bmp');
 bullet.LoadFromFile('Data/bullet.bmp');
 Image1.Height:=Form1.Height;
 Image1.Width:=Form1.Width;
 Form1.Image1.Canvas.Draw(0,0, background);
 spr1.LoadFromFile('Data/spr1.bmp');
 Image2.Height:=spr1.Height;
 Image2.width:=spr1.Width;
 Form1.Image2.Canvas.Draw(0,0, spr1);
 spr1.Transparent:=true;
 spr1.TransparentColor:= spr1.Canvas.Pixels[1,1];
 bullet.Transparent:=true;
 bullet.TransparentColor:= bullet.Canvas.Pixels[1,1];
end;
 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
 with Image2 do
   case Key of
  37: Left:=Left-25;
  40: Top:=Top+25;
  39: Left:=Left+25;
  38: Top:=Top-25;
  65: Left:=Left-25;
  83: Top:=Top+25;
  68: Left:=Left+25;
  87: Top:=Top-25;
end;
 if Image2.Left>(Form1.Width-Image2.Width) then Image2.Left:=Form1.Width-Image2.Width;
 if Image2.Left<0 then Image2.Left:=0;
 if Image2.Top>(Form1.Height-Image2.Height) then Image2.Top:=Form1.Height-Image2.Height;
 if Image2.Top<0 then Image2.Top:=0;
end;
 
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 
end;
 
procedure TForm1.MenuItem5Click(Sender: TObject);
begin
 close;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 x1:=Image2.Left+20;
 y1:=Image2.Top+10;
 y2:=Image2.Top+47;
  Image1.Canvas.Draw(x1,y1, bullet);
  Image1.Canvas.Draw(x1,y2,bullet);
 
end;
 
initialization
  {$I unit1.lrs}
 
end.
p.s Помогите плз.
Вложения
Тип файла: rar arcade.rar (771.1 Кб, 60 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.04.2011, 22:48
Ответы с готовыми решениями:

проблема при работе с китайским J-LINK 8 или же проблема с с
Всем привет. Решил Сам собрать себе дисковери кит на базе at91sam7s64-ek. Подарили мне китайский J-Link 8 c прошивкой 3.20. Недолго...

Выдает ошибку, а я не могу понять в чем проблема. В чем проблема, скажите пожалуйста!
dx=0.0005; epsillon=0.00002; i=0; for x= 0:0.0005:3 i=i+1; if x&lt;1 y (i)=-1; elseif x&lt;2 S=0; ...

Холодильник LG .мод GR-M392YQ.Проблема с дверю, Проблема с дверю при закрывании
Доброго времени суток уважаемые! Холодильник LG GR-M392YQ с первых дней клиент жалуется на то что при закрывание верхней камеры...

13
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
07.05.2011, 15:39  [ТС]
...Вобщем я заглядывал в специализированые по игрострою форумы мне сказали ето решаемо через конструктор
Delphi
1
2
3
4
5
   TProjectile : record
     X,Y : double; // координаты
     Vx,Vy : double; // вектор скорости
     letit: boolean; // проверка на существование true - существует, false - нет.
     end;
Но я непридставляю как ето "присобачить" к коду.Накопал на ету тему статью Пули в 2-D и 3-D пространстве, проверка попадания, оптимизация и эффекты. но какбы не совсем понимаю как они создают кучу пулек(ну т.е они обрашаються pulki[i] и вот я непонимаю как они создали стока переменых етого типа, лучше обьяснить проблему немогу.)
P.S не конструктор "присобачить" а как зделать проблему решаемую через конструктор.
P.P.S заранее благодарен.
0
 Аватар для pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
07.05.2011, 23:28
с таким подходом на дельфи ты не сделаешь аркаду... ты лучше возьми gamemaker (погугли) и мануалы по нему

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

желательно создать описание пары сущностей-объектов (не программных оъектов) где указать, что у них будут храниться за данные и как изменяться.

например, корабель : координаты - 2 числа, линейная скорость - 1 число(можно и 2 , если скорости различаются по осям - вперед-назад быстрее, вверх-вниз медленее ), время перезарядки (в виде количества условных "тиков", скорость, кстати , тоже по ним , по тикам ), желательны также 2 числа - ширина и длина корабеля, дополнительно надо бы указать принадлежность корабеля - игрок/враг ,ну и куда же без неёё - картинки ) также потом в игре появятся жизни, броня и т.п.

"патрик" (эх, молодёжь) : координаты - 2 числа, скорость - 1 число(только вперед) , и "принадлежность" - своя/вражья. им понадобится массив... ну и конечно ещё и урон в последствии, да и пометку о пападании тоже

как происходит работа программы (забудь про событийную модель, почти всё на таймере) : создаем таймер. ставим его интервал = числу от 50 до 100 (так удобнее), ещё лучше - создать константу для этого числа. в событии создания формы задаем таймеру интервал значению из той константы. задаем координаты корабля нашего, его размеры и картинку, также и картинку для пули, ну и скорости им тоже. в событии закрытия формы освободим память под картинки. в событии таймера надо будет писать всю основную работу - проверить нажатость клавиши при помощи getasynckeystate и если нажаты нужные кнопки для ускорения корабля - то прибавить его каждой координате соответствующую скорость. если нажата кнопка выстреала, то надо создать пулю с начальными координатыми равными кораблю, задать остальные нужные параметры и положить её в конец массива пуль. потом пробегаемся по массиву пуль - если пуля ушла за экран или помечена попавшей, то удалим её (можно просто помечать как-то дополнительно, но по уму и уменьшать массив, посмотри в справке функцию slice), иначе прибавим каждой пуле к координате полета вперед её скорость, при этом надо производить проверку столкновения с объектами.

это я привел очень кратенько и обобщенно.

а вот как это реализовывать... ну тут на выбор - писать объектно или же структурно.. то что ты привел выше это запись (record), относится к структурному программированию, понядобится писать процедуры для обработки этих записей. а можно и писать объектно - вот в них как раз существует понятие конструктора, а не то что ты привел (хотя может имелся в виду конструктор игр как программа, тогда см. первое предложение поста), там код немного посложней, но и удобства потом оценишь, когда например, код за создание корабля игрока и врага будет работать и с кораблем противника, только чуток изменятся цифры (в структурном так посложнее сделать)
0
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
08.05.2011, 00:40  [ТС]
эээ ну мне gamemaker точно не каким боком не уперся. Он хорош спору нет, если твой потолок 2D аркада... хочеться большого а он меня ограничивает да и я принцыпиально не могу чтото выучить(в даном случаи прграммирование) не ставя перед собой трудные задачи.

Добавлено через 56 секунд
Хотел бы я простых путей взял бы какой-нить бесплатный двиг...

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

p.s заранее благодарен
0
 Аватар для pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
08.05.2011, 08:19
сперва полностью напиши код объявления 2 record , которые тебе нужны, а там поглядим.. судя по твоим сообщениям , тебе надо всё по шагам, научишься ) коли будет желание... я вообще учился всему сам, без инета, справки мануалы и кодить кодить

почему я говорю только про 2 записи, ибо НАЧИНАТЬ НАДО С КОНЦЕПЦИИ, а у тебя это примерно будет такое - кораблик с такими-то параметрами пермещается в космосе, изображенным плоским пространством(определись, что это будет - просто некая область, скроллер с постепенным перемещением по области, или side-скроллер, когда переход за границу экрана сопровождается появлением с другой стороны). игрок управляет перемещением кораблика с помощью клавиш стрелок, и может стрелять - тогда он выпускает прямолетящую пулю с такими-то параметрами. пуля при столкновении с "врагом"(пока не будем трогать врагов, хоть бы с первым всем разобраться) будет наносить ему урон

мой тебе простой совет - забудь про шейпы... взял и забыл, нет их. хочешь научиться - учись, а не придумывай костыли, коими являются шейпы. тебе надо загрузку картинок и их отрисовку, причем по таймеру. это точно.
и кстати, я забыл дописать в то место где я писал про столкновение с другими объектами - тут будет проход по всем "действующим" объектам на экране и отрисовка их
0
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
08.05.2011, 12:28  [ТС]
тут будет проход по всем "действующим" объектам на экране и отрисовка их
Ну это я понимаю я хочу создать еще одну переменую типа bitmap и туда-сюда все перерисовывать(раз в сек) т.к. copemode... тут явно непрокатит.
0
 Аватар для pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
08.05.2011, 20:16
Да, двойную буферизацию надо использовать, делается так, что в буферный битмап(который по размеру формы) рисуется всё что надо, а потом он один рисуется на форму, form.canvas.draw(0,0,bitmap);
0
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
08.05.2011, 20:23  [ТС]
Но до етого далеко мне надо чтоб у меня щя пули летели хотяб без перерисовки, а то перерисовывать то пока нечего А то мне все говорят мол есть 2 подхода к решению твоей задачи и все - тишына и не кто не обьяснит а как ето собсно делать.
0
 Аватар для pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
08.05.2011, 20:59
Цитата Сообщение от pHOMM Посмотреть сообщение
сперва полностью напиши код объявления 2 record , которые тебе нужны, а там поглядим..
я писал сие выше тебе, без этого смысла в теме не вижу
0
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
09.05.2011, 19:33  [ТС]
я тут решыл маленько код переделать мне посоветовали делать через указатели... собсно новые только 3 процедуры... вопрос вот в чем: куда в type ткнуть PProjectile = ^TProjectile; чтоб оно не матюкалось?
Delphi
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
unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ExtCtrls, Menus;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    MenuItem4: TMenuItem;
    MenuItem5: TMenuItem;
    Timer1: TTimer;
    procedure FormActivate(Sender: TObject);
    procedure MenuItem2Click(Sender: TObject);
    procedure NewGame();
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure MenuItem5Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure add_projctl();
    procedure update_projctles();
    procedure clear_projctles();
 
  private
    { private declarations }
  public
    { public declarations }
 
  end; 
  PProjectile = ^TProjectile;
  TProjectile : record
     X,Y : double; // координаты
     Vx,Vy : double; // вектор скорости
     letit: boolean; // проверка на существование true - существует, false - нет.
     end;   
var
  Form1: TForm1;
  background,airplane,bullet: TBitmap;
  x1,y1,y2,i:integer;
  pulja: TProjectile;
  puli:TList;
implementation
 
{ TForm1 }
 
procedure TForm1.FormActivate(Sender: TObject);
begin
 bullet:=TBitmap.Create;
 airplane:= TBitmap.Create;
 background :=TBitmap.Create;
 Image1.Height:=Form1.Height;
 Image1.Width:=Form1.Width;
 puli:=TList.Create;
 NewGame();
end;
procedure TForm1.add_projctl();
var
  prjct : PProjectile;
begin
  new(prjct);  //заполнение полей
  puli.add(prjct);
end;
procedure TForm1.update_projctles();
var
  prjct : PProjectile;
  i       : integer;
begin
  if (puli.count > 0) then
    for i := 0 to puli.count-1 do begin
      prjct := puli.items[i]; //обновление полей или отрисовка
    end;
end;
procedure TForm1.clear_projctles();
var
  prjct : PProjectile;
  i       : integer;
begin
  if (puli.count > 0) then
    for i := 0 to puli.count-1 do begin
      prjct := puli.items[i];
      dispose(prjct);
    end;
  puli.clear;
  freeandnil(puli);
end;
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
 NewGame();
end;
 
procedure TForm1.NewGame();
begin
 Image2.Left:=0;
 Image2.Top:=96;
 background.LoadFromFile('Data/background.bmp');
 bullet.LoadFromFile('Data/bullet.bmp');
 airplane.LoadFromFile('Data/airplane.bmp');
 airplane.Transparent:=true;
 airplane.TransparentColor:= airplane.Canvas.Pixels[1,1];
 bullet.Transparent:=true;
 bullet.TransparentColor:= bullet.Canvas.Pixels[1,1];
 Form1.Image1.Canvas.Draw(0,0, background);
 Form1.Image2.Canvas.Draw(0,0, airplane);
end;
 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
 with Image2 do
   case Key of
  37: Left:=Left-25;
  40: Top:=Top+25;
  39: Left:=Left+25;
  38: Top:=Top-25;
  65: Left:=Left-25;
  83: Top:=Top+25;
  68: Left:=Left+25;
  87: Top:=Top-25;
end;
 if Image2.Left>(Form1.Width-Image2.Width) then Image2.Left:=Form1.Width-Image2.Width;
 if Image2.Left<0 then Image2.Left:=0;
 if Image2.Top>(Form1.Height-Image2.Height) then Image2.Top:=Form1.Height-Image2.Height;
 if Image2.Top<0 then Image2.Top:=0;
end;
 
procedure TForm1.MenuItem5Click(Sender: TObject);
begin
 close;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 x1:=Image2.Left+20;
 y1:=Image2.Top+10;
 y2:=Image2.Top+47;
  Image1.Canvas.Draw(x1,y1, bullet);
  Image1.Canvas.Draw(x1,y2,bullet);
 
end;
 
initialization
  {$I unit1.lrs}
 
end.
Добавлено через 13 минут
Все не матюкаеться... Обьясните кто-нить что есть указатель, Tlist и как и для чего его исп. а то я так по примеру катанул... вроде и код понимаю а повторить не повторю.

Добавлено через 24 минуты
При изменении процедуры TForm1.add_projctl() ругаеться
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.add_projctl();
var
  prjct : PProjectile;
begin
  new(prjct);  //заполнение полей
  prjct.x:=x1;
  prjct.x:=y1;
  prjct.Vx:=10;
  prjct.Vy:=0;
  prjct.Letit:=true;
  puli.add(prjct);
end;
Добавлено через 5 минут
Блин переписал пример из http://www.delphisources.ru/pa... e.php.html и всеравно нефига непашет. Кризис жанра. ХЕЛП!!1
0
 Аватар для anonimus
2184 / 1255 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
09.05.2011, 21:23
вот небольшой пример
Delphi
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
var
  Form1: TForm1;
  pulya:array of TShape;
  q:integer=0;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=VK_SPACE then begin
setlength(pulya,q+1);
pulya[q]:=TShape.Create(self);
pulya[q].Shape:=stEllipse;
pulya[q].Width:=9;
pulya[q].Height:=9;
pulya[q].left:=ClientWidth-9;
pulya[q].Top:=ClientHeight div 2;
pulya[q].Parent:=form1;
inc(q);
end;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
for i:=0 to high(pulya)do begin
   if pulya[i]<>nil then begin
     pulya[i].Left:=pulya[i].Left-10;
   end;
end;
end;
для создание пульки используется TShape вылетают из правого края формы по нажатию на пробел.
можешь доработать код что бы объект уничтожался когда пулька залетает за правую форму (она уже становится не нужной ) )
0
 Аватар для pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
09.05.2011, 22:57
Цитата Сообщение от Wzz Посмотреть сообщение
я тут решыл маленько код переделать мне посоветовали делать через указатели... собсно новые только 3 процедуры... вопрос вот в чем: куда в type ткнуть PProjectile = ^TProjectile; чтоб оно не матюкалось?
какая разница через что делать.. через записи, указатели (димические данные), объекты, разниц почти никакой, разве что код отличается по силе и понятности... вы не понимаете принципов и основ... и упорно не хотите их понять, а между тем , это чрезвычайно просто... напишите кратенько концепт и набор переменных , которые вам понадобятся для реализации задуманного концепта, выразите это в записях , или объектах, не суть важно в чем...
Цитата Сообщение от Wzz Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 x1:=Image2.Left+20;
 y1:=Image2.Top+10;
 y2:=Image2.Top+47;
  Image1.Canvas.Draw(x1,y1, bullet);
  Image1.Canvas.Draw(x1,y2,bullet);
это ерунда... вы только подумайте - в таймере вы выставляете одно и то же значение (ну в смысле место "рождения" пули)... и ждёте , что будут изменения... я полагаю у вас постоянно рисуется пуля перед самолетом, ибо это следует из кода
Цитата Сообщение от Wzz Посмотреть сообщение
Обьясните кто-нить что есть указатель, Tlist и как и для чего его исп. а то я так по примеру катанул... вроде и код понимаю а повторить не повторю.
читайте книги, а "катать " по примеру не советую, желательно делать всё самому

Цитата Сообщение от Wzz Посмотреть сообщение
При изменении процедуры TForm1.add_projctl() ругаеться
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.add_projctl();
var
  prjct : PProjectile;
begin
  new(prjct);  //заполнение полей
  prjct.x:=x1;
  prjct.x:=y1;
  prjct.Vx:=10;
  prjct.Vy:=0;
  prjct.Letit:=true;
  puli.add(prjct);
end;
скорее всего надо сделать так -
Delphi
1
2
3
4
5
prjct^.x:=x1;
prjct^.y:=y1;
prjct^.Vx:=10;
prjct^.Vy:=0;
prjct^.Letit:=true;
Цитата Сообщение от Wzz Посмотреть сообщение
ХЕЛП!!1
не выставляйте себя школотой, прислушивайтесь к советам, читайте мануалы, старайтесь выполнять какие-то задачи из мануалов и т.п. и спрашивайте конкретные вопросы, без "хелп" ," кризис", "посоветовали то да сё"
например конкретный вопрос - как работать с tlist для хранения в нем записей о типе "пуля"

не теряйте времени, если хотите в этом разобраться...
0
56 / 56 / 5
Регистрация: 18.10.2009
Сообщений: 309
10.05.2011, 00:43  [ТС]
До событий таймера тупо не дошло.... мне ети процедуры выдавали ошыбку...
Были бы хоть какие-то книги с описанием Tlist везде только тот жалкий пример, который кстати непашет
а 'ХЕЛП!!1' - крик души я уже незнаю сколько мучаюсь над етой проблемой.

Добавлено через 31 минуту
Почему в одних примерах исп. record а в других class?
0
 Аватар для pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
10.05.2011, 09:21
Цитата Сообщение от Wzz Посмотреть сообщение
Почему в одних примерах исп. record а в других class?
а ты сам как думаешь ? правильно ! потому, что так захотел программист, и всё... ему так было удобнее
А ты напиши, как тебе удобнее, начни с простого, не залезай во всякие оптимизации и и подобное... чтобы въехать в ООП (классы) тебе с гарантией потребуется 5 часов ! это минимум, и если ты очень умный, потому что мануалы по ООП довольно серьезные и объемные.
Сделай пока так, как умеешь, и покажи, как ты выразил в коде свою концепцию, не пытатайся добиться работы сразу, а то будет каша

я уже не знаю, как тебе это объяснять, если и после этого поста не будет того, о чем я прошу, то я умываю отсюда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2011, 09:21
Помогаю со студенческими работами здесь

СМА Indesit AQ70L 05 CIS проблема с вращением двигателя, СМА Indesit AQ70L 05CIS проблема с вращением двигателя
сма Indesit AQ70L 05 CIS серийный 203120035 инд код 50770730000 платформа Аркадия однофазка тип МК H8 36079 Ошибок нет и пытался...

Проблема с while
Написал программу, но почему то не работают циклы Sub r2() s = Cells(1, 1) Do While s &gt;= 500 s = s - 500 And k = k + 1 And...

Проблема с Contains
Помогите найти ошибку в коде. Мне нужно вывести все пары чисел в которых первое число состоит из цифр которых нет во втором. А...

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

Неполадки с IE
У меня 7 ИЕ... Дело в том что когда я закрываю закладку то ИЕ закрываеться полностью и даже прекрашаються загрузки.. раньше такого не...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru