Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2016, 10:48   #1
igor100500
Новичок
Джуниор
 
Регистрация: 26.03.2016
Сообщений: 7
По умолчанию Классы в Delphi 7

Здравствуйте. Нужна помощь по поводу кода, нужно сделать так чтобы рисование звездопада происходила через классы, а у меня просто рисование(как мне сказали).
Вот код.
Код:
const liczba = 500;
var
  Form1: TForm1;
  koniec:boolean;
  tablica:array[1..liczba] of
  record
  v,kat,r: real;
  kolor:tcolor;
  r_stare,kat_stare:real;
  end;
implementation

procedure nadaj_losowe;
var i:integer;
begin
for i:=1 to liczba do
begin
tablica[i].kat:=random(3600)/10;
tablica[i].r:=random(195)+2;
tablica[i].v:=(tablica[i].r+random(50)+1)/300;
tablica[i].kolor:=rgb(random(155)+50,random(105)+150,random(155)+50);
end;
end;

procedure przelicz;
var i:integer;
begin
for i:=1 to liczba do
begin
tablica[i].kat_stare:=tablica[i].kat;
tablica[i].r_stare:=tablica[i].r;
tablica[i].kat:=tablica[i].kat+tablica[i].v;
if tablica[i].kat>359 then tablica[i].kat:=0;
tablica[i].r:=tablica[i].r+tablica[i].v/5;
if tablica[i].r>190 then
begin
tablica[i].r:= random(20)+2;
tablica[i].v:=(random(245)+3)/300;
tablica[i].kolor:=rgb(random(155)+50,random(155)+100,random(155)+50);
end;
end;
end;

procedure wyswietl;
var i,x,y:integer;
begin
for i:=1 to liczba do
begin
x:=round(tablica[i].r*cos(tablica[i].kat/180*pi));
y:=round(tablica[i].r*sin(tablica[i].kat/180*pi));
form1.Image1.Canvas.Brush.Color:= tablica[i].kolor;
form1.Image1.Canvas.Pixels[220+x,220+y]:= tablica[i].kolor;
end;
end;

procedure zmaz_stare;
var i,x,y,x2,y2:integer;
begin
for i:=1 to liczba do
begin
x:=round(tablica[i].r_stare*cos(tablica[i].kat_stare/180*pi));
y:=round(tablica[i].r_stare*sin(tablica[i].kat_stare/180*pi));
x2:=round(tablica[i].r*cos(tablica[i].kat/180*pi));
y2:=round(tablica[i].r*sin(tablica[i].kat/180*pi));
if (x<>x2)or(y<>y2) then
form1.Image1.Canvas.Pixels[220+x,220+y]:=clblack;
end;
end;
{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
with canvas do
begin
pen.style:= psdot;
pen.Width:= 2;
for I:= 1 to 10 do
begin
pen.Color:=RGB(random(255), random(255), random(255)) ;
lineto(random(clientwidth), random(clientwidth));
Moveto(random(clientwidth), random(clientwidth));
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
koniec:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
koniec:=false;
image1.Canvas.Brush.Color:=clblack;
image1.Canvas.FloodFill(1,1,0,fsborder);
nadaj_losowe;
repeat
przelicz;
wyswietl;
sleep(1);
zmaz_stare;
application.ProcessMessages;
until koniec;
end;
К примеру как должно быть?)
igor100500 вне форума Ответить с цитированием
Старый 26.03.2016, 11:24   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
К примеру как должно быть?)
К примеру вот так:
http://www.rohitab.com/discuss/topic...ticle-systems/
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 26.03.2016, 11:26   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
К примеру как должно быть?)
Как звучит оригинал задания?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 26.03.2016, 11:42   #4
igor100500
Новичок
Джуниор
 
Регистрация: 26.03.2016
Сообщений: 7
По умолчанию

Написать что-либо с использованием классов(наследование, полиморфизм...и что-то еще)
Рисунок там например и т.д(тобишь к конструсторе координаты точек напихать и чтобы получился рисунок)
У меня звездопад получился, но он у меня реализован не через класс.
igor100500 вне форума Ответить с цитированием
Старый 26.03.2016, 11:46   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Написать что-либо с использованием классов(наследование, полиморфизм...и что-то еще)
Рисунок там например и т.д(тобишь к конструсторе координаты точек напихать и чтобы получился рисунок)
У меня звездопад получился, но он у меня реализован не через класс.
то есть, задания нету, да?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 26.03.2016, 11:48   #6
igor100500
Новичок
Джуниор
 
Регистрация: 26.03.2016
Сообщений: 7
По умолчанию

На свой выбор, преподавателю важно, чтобы это было реализовано через класс объекта.

Желательно как-то мой код перепихнуть через класс))

ну или пример попроще чтоле, а то там дали ссылку и я ничего особо и не понял там..

Последний раз редактировалось Аватар; 26.03.2016 в 17:14.
igor100500 вне форума Ответить с цитированием
Старый 26.03.2016, 11:51   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Написать самостоятельно или взять готовую программу?
Я тут дохрена чего понаписал.
Ну, вот, например.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 26.03.2016 в 12:05.
min@y™ вне форума Ответить с цитированием
Старый 26.03.2016, 13:53   #8
igor100500
Новичок
Джуниор
 
Регистрация: 26.03.2016
Сообщений: 7
По умолчанию

Самостоятельно конечно, ну я взял отсюда))
http://www.youtube.com/watch?v=NzNpV8B0rOg
igor100500 вне форума Ответить с цитированием
Старый 26.03.2016, 13:54   #9
igor100500
Новичок
Джуниор
 
Регистрация: 26.03.2016
Сообщений: 7
По умолчанию

и надо бы через классы это все напичкать)
igor100500 вне форума Ответить с цитированием
Старый 26.03.2016, 14:01   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
ну я взял отсюда
польский язык - твоя родной, панове?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi классы Аделинкка Помощь студентам 3 13.11.2012 18:45
Классы (Delphi) wertret Помощь студентам 5 26.04.2012 18:42
Delphi (классы) prodigy00713 Помощь студентам 0 19.04.2009 21:36
Классы (Delphi) Kreaman Помощь студентам 2 14.02.2009 16:02
Классы в delphi МишаК Помощь студентам 1 30.05.2007 07:23