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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2010, 13:31   #1
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
Вопрос Timer в Canvas

Помогите убрать цикл в Канве, а точнее выключить таймер после завершения события.

Я так понимаю, надо куда то подставить (может параметры какие то здесь изменить)

if (y <= ClientHeight+20) then
Timer1.Enabled := false;


Вот код программы.

Код:
procedure TInfo.FormCreate(Sender: TObject);
begin
  x:=50;
  y:=Height+10;
  bm:=TBitmap.Create;
  bm.Width:=200;
  bm.height:=height;
  bm.PixelFormat:=pf24bit;
  Canvas.Font.Name:='Calibri';
  bm.Canvas.Brush.Color:= $00FFCCCC;
  bm.Canvas.FillRect(bm.Canvas.ClipRect);
  With Timer1 do
    begin
      enabled:=true;
      Interval:=20;
    end;
end;


procedure TInfo.Timer1Timer(Sender: TObject);
begin

  y:=y-1;
  if y=30 then y:=height+10;
    Timer1.Enabled:=False;
  with bm do
    begin
      Canvas.Font.Color:=$000576DC;
      Canvas.TextOut(x-10,y,'Имя программы:');
      ...
      ...
      ...
    end;
  Canvas.Draw(0,0,bm);
end;
Mazepa вне форума Ответить с цитированием
Старый 04.02.2010, 13:33   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Засунь в обработчик таймера самой первой строчкой.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.02.2010, 14:17   #3
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
По умолчанию

Во, разобрался, нужно было отключение вставить в готовое условие
Код:
procedure TInfo.Timer1Timer(Sender: TObject);
begin

  y:=y-1;
  if y=30 then Timer1.Enabled:=False;
  with bm do
    begin
     ...
только как сделать, чтобы при повторном открывании этой формы (это форма с канвой не главная), не выходя из программы, снова запускался таймер ( а то при повторном запуске пустой экран)

Последний раз редактировалось Stilet; 05.02.2010 в 08:51.
Mazepa вне форума Ответить с цитированием
Старый 04.02.2010, 15:15   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Введи дополнительную переменную.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.02.2010, 18:39   #5
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Введи дополнительную переменную.
аааа ,подскажи пожалуйста что конкретно написать и куда вставить код ,а то я уже ничего не понимаю
Mazepa вне форума Ответить с цитированием
Старый 05.02.2010, 08:54   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Mazepa
В Событии OnActivate той формы пропиши старт таймера а перед ним еще не забудь поставить y:=Height+10;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2010, 11:06   #7
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В Событии OnActivate той формы пропиши старт таймера а перед ним еще не забудь поставить y:=Height+10;
Спасибо большое теперь всё, только надо ещё добавить две строчки, чтобы новый текст не наезжал на предыдущий. Рисуется прямоугольник нужного цвета, прям то что нужно было

Код:
  bm.Canvas.Brush.Color := $00FFCCCC;
  bm.Canvas.FillRect(Canvas.ClipRect);

Последний раз редактировалось Mazepa; 05.02.2010 в 11:15.
Mazepa вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Timer... Teleport Общие вопросы Delphi 13 14.09.2011 17:02
Timer Arhangel_bes Помощь студентам 2 27.10.2008 17:55
Timer... Roof Общие вопросы Delphi 11 11.10.2007 12:57
Timer PAVEL315 Компоненты Delphi 16 20.12.2006 19:47
timer Toxa Компоненты Delphi 6 06.12.2006 06:58