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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2009, 19:04   #1
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию концентрические окружности

Помогите написать программу, мне нужно изобразить 10 концентрических окружностей с центром в середине экрана. Расстояние между контурами 5 пикселей.

Код:
procedure TForm1.FormPaint(Sender: TObject);
begin
with Canvas do
begin
...
2009 вне форума Ответить с цитированием
Старый 19.03.2009, 19:14   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Код:
for i:=1 to 10 do
begin
   Form1.Canvas.Ellipse(Form1.width div 2-i*5,Form1.height div 2-i*5,Form1.width div 2+i*5,Form1.height div 2+i*5)
end;
Возможно кое что нужно подправить... забыл...
Levsha100 вне форума Ответить с цитированием
Старый 20.03.2009, 20:52   #3
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию

Сделал вот так:
Код:
procedure TForm1.FormPaint(Sender: TObject);
begin

with Canvas do
begin
 Canvas.Pen.Width := 1;
Canvas.Pen.Color := clBlack;
Canvas.Brush.Color := clWhite;
Rectangle(10,20,340,350);

Pen.Width := 2;
Brush.Style := bsClear;

Pen.Color := clRed;
Ellipse(160,170,190,200);

Pen.Color := clOlive;
Ellipse(150,160,200,210);

Pen.Color := clYellow;
Ellipse(140,150,210,220);

Pen.Color := clGreen;
Ellipse(130,140,220,230);

Pen.Color := clBlue;
Ellipse(120,130,230,240);

Pen.Color := clRed;
Ellipse(110,120,240,250);

Pen.Color := clOlive;
Ellipse(100,110,250,260);

Pen.Color := clYellow;
Ellipse(90,100,260,270);

Pen.Color := clGreen;
Ellipse(80,90,270,280);
а как сделать так чтобы эти круги появлялись по очереди с определенным интервалом, а когда круги заканчивались, то они все старались и после этого программка начиналась сначала? Я в принципе догадываюсь, что это нужно как-то реализовать через цикл и через объект таймер, но как конкретно это сделать не знаю
2009 вне форума Ответить с цитированием
Старый 20.03.2009, 21:00   #4
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
Радость

Код:
While yes do
begin
  for i:=1 to n do
  begin
    // RISUEM
    Sleep(50);
  end;
//STERAEM
Sleep(100);
end;
Levsha100 вне форума Ответить с цитированием
Старый 20.03.2009, 21:29   #5
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию

Delphi на слове yes выбивает ошибку
2009 вне форума Ответить с цитированием
Старый 20.03.2009, 21:35   #6
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

yes это переменная типа boolean чтобы не было вечного цикла
Levsha100 вне форума Ответить с цитированием
Старый 20.03.2009, 22:06   #7
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию

да круги уже по очереди появляются, а как сделать что бы когда круги заканчивались, то они все старались и после этого программка начиналась сначала?
2009 вне форума Ответить с цитированием
Старый 20.03.2009, 22:42   #8
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Код:
While yes do
begin
  for i:=1 to n do
  begin
    {Canvas.Brush.Color := clWhite;
    Rectangle(10,20,340,350);}
    //Risuem
    Sleep(50);
  end;
Canvas.Brush.Color := clWhite;
Rectangle(10,20,340,350);
Sleep(100);
end;
Вроде так!
Levsha100 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
движение окружности по окружности MyQwErTy Помощь студентам 13 04.11.2008 22:52
Касательные к окружности Dublin Мультимедиа в Delphi 3 21.10.2008 20:52
Текст в окружности. Adamant Свободное общение 4 27.09.2008 09:58
Движение окружности Ensoph Помощь студентам 4 25.09.2008 12:11
Движение по окружности Mickle Общие вопросы Delphi 3 13.04.2007 16:24