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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2013, 13:05   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
Лампочка как правильно сделать задержку на выполнение действий?

программа - тир. есть 3 изображения - одно как фон, оно не меняется, второе и третье должны появляться поочередно. я делаю так:
Код:
for i:=1 to 10 do begin
a:=Random(2)+1;
if a=1 then
begin
Image2.Visible:=True;
Timer1.Interval:=5000;
Timer1.Enabled:=True;
end
else
begin
Image3.Visible:=True;
Timer3.Interval:=5000;
Timer3.Enabled:=True;
end;
end;
в результате изображения появляются слишком часто, а мне нужно, чтобы раз в 5 сек. если добавляю sleep появляются оба изображения сразу, а через 5 сек оба исчезают!
gylayko вне форума Ответить с цитированием
Старый 08.03.2013, 14:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Абсолютно неудачный подход.
Сделай один таймер и храни изображения в ImageList. В отработке таймера меняй изображения.
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    ImageList1: TImageList;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 with TTimer(Sender) do begin
  if tag<ImageList1.Count then tag;=tag+1 else tag:=0;
  ImageList1.Draw(Canvas,0,0,tag);
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Tag:=0;
  Timer1.Interval:=3000;
  Timer1.Enabled:=true;
end;

end.
Идея ясна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.03.2013, 15:18   #3
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Абсолютно неудачный подход.
Сделай один таймер и храни изображения в ImageList. В отработке таймера меняй изображения.
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    ImageList1: TImageList;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 with TTimer(Sender) do begin
  if tag<ImageList1.Count then tag;=tag+1 else tag:=0;
  ImageList1.Draw(Canvas,0,0,tag);
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Tag:=0;
  Timer1.Interval:=3000;
  Timer1.Enabled:=true;
end;

end.
Идея ясна?
в ImageList нужны фото одинаковых размеров! а мне нужны разные картинки.
gylayko вне форума Ответить с цитированием
Старый 08.03.2013, 19:17   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Ну так переделайте на разные картинки, но с одним таймером.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение действий перейдя по ссылке, как? men232 Помощь студентам 3 27.07.2011 19:40
как сделать задержку вывода изображения pupilMartyr Общие вопросы Delphi 9 03.05.2011 21:57
Авторизация и выполнение действий. Rock'n'rolla Работа с сетью в Delphi 13 25.01.2010 21:05
как сделать паузу (или задержку) в цыкле : с# Natok Помощь студентам 7 30.05.2009 12:55
выполнение нескольких действий??? zzzzz HTML и CSS 2 11.12.2008 11:59