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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2007, 13:17   #11
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

А что собственно должен делать таймер ?
описывайте вопрос
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.12.2007, 13:25   #12
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Сделай обработчик для одного, и присвой остальным эту процедуру.

Progressbar1.onTimer := Timer1Timer;
Progressbar2.onTimer := Timer1Timer;
...
А в самой процедуре

Код:
procedure Form1.Timer1Timer(Sender: TObject) ;   
var xProgressbar:TProgressBar;
begin   
  xProgressbar := Sender as TProgressBar;
  Case xProgressbar of
    progressbar1 : [...]
    progressbar2 : [...]
  end;   
end;
Короче через параметр Sender передаётся объект, вызвавший метод. А поскольку все объекты в дельфе - потомки TObject, то работает приведение типов // должно работать, не проверял
пыщь
JTG вне форума Ответить с цитированием
Старый 19.12.2007, 13:27   #13
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

в общем,у меня будет несколько имэдж, по наведению на которые они будут плавно увеличиваться до определенного размера(для плавности таймер и нужен)...в самом таймере описать не получится(как мне кажется,т.к. при таймер.енабле=тру, все картинки дружно увеличатся), соответственно,я пытаюсь описать их увеличение в обработчике онМаусЕнтер...

надеюсь,что сейчас понятнее объяснил
Романнн вне форума Ответить с цитированием
Старый 19.12.2007, 13:29   #14
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Радость

Да идея правильная, только мне кажется что у ProgressBar нету события OnTimer
Смотря как стоит задача. Если все в раз прогресс бары нужно поднимать, то просто циклом, а если нет, то смотреть какой progressBar (1,2,3....) и в соответствии с этим, делать то, что нужно для него.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 19.12.2007, 13:30   #15
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

а да пардон, ну вообщем вы поняли
пыщь
JTG вне форума Ответить с цитированием
Старый 19.12.2007, 13:32   #16
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Лампочка

Цитата:
Сообщение от Романнн Посмотреть сообщение
в общем,у меня будет несколько имэдж, по наведению на которые они будут плавно увеличиваться до определенного размера(для плавности таймер и нужен)...в самом таймере описать не получится(как мне кажется,т.к. при таймер.енабле=тру, все картинки дружно увеличатся), соответственно,я пытаюсь описать их увеличение в обработчике онМаусЕнтер...

надеюсь,что сейчас понятнее объяснил
При навидении на Image, в переменную вносить имя имэйджа, на который наведено, а в таймере по этой переменной определять объект, и с ним уже работать.
При Image.LeaveMouse обнулять переменную, и Timer1.Enabled:=False;
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 19.12.2007, 13:36   #17
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

ладно,буду пытаться)спасибо всем
Романнн вне форума Ответить с цитированием
Старый 19.12.2007, 13:56   #18
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

можно как-то так:

Код:
Const minWidth = 128; //ширина по умолчанию
         maxWidth = 400; //ширина при наведении
         delta = 2; //увеличивать уменьшать на 2 пикселя за тик таймера

var action: integer; //1 - увеличение, -1 - уменьшение, 0 - стоять
...
procedure Form1.Image1MouseEnter(Sender: TObject) ;   
begin
  action:=1;
end;

procedure Form1.Image1MouseLeave(Sender: TObject) ;   
begin
  action:=-1;
end; 
...
procedure Form1.Timer1Timer(Sender: TObject) ;      
var image:TImage;   
begin      
  image := Sender as TImage;   
  case action of
  1: Begin
         If image.Width < maxWidth then inc(image.width,delta)
         Else action:=0;
         //увеличивать до нужного размера и остановить
         //... ещё высоту изменить пропорционально ширине
      end;
  -1: Begin
         If image.Width > minWidth then dec(image.width,delta);
         Else action:=0; 
         //то же самое, но уменьшать
       End;
    End //case
end;
Только надо переменную action для каждого TImage свою, можно сделать класс TMyImage = class(TImage), добавить в него и тогда обращаться case Image.action of.
Таймер думаю можно и не выключать
пыщь

Последний раз редактировалось JTG; 19.12.2007 в 14:01.
JTG вне форума Ответить с цитированием
Старый 19.12.2007, 14:06   #19
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

спасибо!...сам сейчас так и делаю.....
Романнн вне форума Ответить с цитированием
Старый 19.12.2007, 15:33   #20
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

А про стек тут никто не слышал ?
BOBAH13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер Михаил Юрьевич Общие вопросы Delphi 1 16.07.2008 08:46
Таймер в С# kommunist Общие вопросы .NET 3 02.06.2008 12:11
таймер darkcoder Общие вопросы Delphi 5 06.12.2007 06:14
Таймер Stanislav Общие вопросы Delphi 3 26.11.2007 06:52
Таймер Blondinko Помощь студентам 6 23.10.2007 10:35