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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2019, 11:25   #1
dol
Пользователь
 
Регистрация: 02.12.2018
Сообщений: 12
Радость delphi canvas рисование с интервалами

Здравствуйте, как мне сделать, чтобы фигуры на форме появлялись не одновременно, а по очереди с одинаковыми интервалами?
Код:
procedure TForm1.N1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
Timer1.Interval:=500;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Canvas.Rectangle(10,100,100,200);
Canvas.Rectangle(110,100,200,200);
Canvas.Rectangle(210,100,300,200);
end;

end.
dol вне форума Ответить с цитированием
Старый 04.06.2019, 11:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

завести глобальную переменную и по ней определять, какую фигуру выводить


Код:
type
  TForm1 = class(TForm)

...

  private
    ndraw  : integer;
  public
    { Public declarations }
  end;



.....

procedure TForm1.N1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
Timer1.Interval:=500;
ndraw := 0;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  case ndraw of
  0 : Canvas.Rectangle(10,100,100,200);
  1 : Canvas.Rectangle(110,100,200,200);
  2 : Canvas.Rectangle(210,100,300,200);
  end;
  Inc(ndraw);
  if ndraw>2 then Timer1.Enabled := False
end;

Последний раз редактировалось Serge_Bliznykov; 04.06.2019 в 11:43.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.06.2019, 11:42   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,722
По умолчанию

Код:
i : integer ;

procedure TForm1.N1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
Timer1.Interval:=500;
i := 0 ;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if i=0 then begin Canvas.Rectangle(10,100,100,200); Inc(i) end ;
if i=1 then begin Canvas.Rectangle(210,100,300,200); Inc(i) end ;
if i=2 then begin Canvas.Rectangle(110,100,200,200); Timer1.Enabled:=False end ;
end;

end.
Хорошая мысля приходит одновременно.
digitalis вне форума Ответить с цитированием
Старый 04.06.2019, 19:34   #4
dol
Пользователь
 
Регистрация: 02.12.2018
Сообщений: 12
По умолчанию

Спасибо, теперь разобрался!
dol вне форума Ответить с цитированием
Старый 04.06.2019, 20:04   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
завести глобальную переменную
Это же плохо...
Вадим Мошев вне форума Ответить с цитированием
Старый 04.06.2019, 21:00   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Она же не глобальная, а приватная в классе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.06.2019, 22:58   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Она же не глобальная, а приватная в классе
ага!
говорим, по старой привычке, глобальная,
пишем в коде - приватную переменную в классе.

Хотя, по большому счёту, не вижу ничего ужасного в использовании глобальных переменных.
в конце концов, почему Дельфи использует глобальную
Код:
var Form1:TForm1;
ему можно, а мне нет?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование. Canvas Sna1L Общие вопросы по Java, Java SE, Kotlin 2 28.05.2012 02:08
Рисование на Canvas grafgrial Мультимедиа в Delphi 11 25.07.2011 10:15
Рисование на Canvas Черевон Общие вопросы Delphi 4 14.06.2011 16:40
Рисование квадрата. Работа на Canvas Файзулка Мультимедиа в Delphi 8 26.02.2010 14:34
Рисование квадрата, работа на canvas lubov_morkov Помощь студентам 2 02.06.2009 13:01