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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2007, 12:58   #1
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию таймер

как заставить объект на форме(прогрессбар, например...) работать с таймером(про тот же прогрессбар, чтобы он позишн изменял на каждый отсчет таймера...)

пробовал делать так:

with timer1.ontimer(???) do
begin
сам код;
end;

не могу понять что прописывать сендером в ontimer...
Романнн вне форума Ответить с цитированием
Старый 19.12.2007, 13:05   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Создай процедуру типа этой:
Цитата:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
image2.left:=240+round(140*sin(i*pi/180));
image2.Top:=170-round(140*cos(i*pi/180));
i:=i+1;
end;
Внутри напиши свое.
puporev вне форума Ответить с цитированием
Старый 19.12.2007, 13:06   #3
MAcK
Форумчанин
 
Регистрация: 09.11.2006
Сообщений: 274
По умолчанию

cделай переменную и при каждом отсщёте таймера
Inc(переменная);
ProgressBar.position := переменная
Единственный приличный формат, разработанный Microsoft'ом, - format c:
MAcK вне форума Ответить с цитированием
Старый 19.12.2007, 13:08   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Тю, дв.клик в инспекторе объектов на событии onTimer, дельфа сама сделает обработчик и поставит курсор между begin/end

а туда написать например так

Код:
procedure Form1.Timer1Timer(Sender: TObject) ;
begin
  With progressbar1 do
  begin
     if position>max then timer1.enabled:=false;
     inc(Progressbar1.Position);
  end;
end;
пыщь
JTG вне форума Ответить с цитированием
Старый 19.12.2007, 13:09   #5
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

procedure TForm6.Image1MouseEnter(Sender: TObject);
begin
timer1.Enabled:=true;
timer2.Enabled:=false;
with timer1.OnTimer(???Sender: TObject???) do
if image1.Width>=500 then timer1.Enabled:=false else
begin
image1.Width:=image1.Width+i;
i:=i+1;
end;
end;

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

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

кстати.......как я понял, делфийское "inc(переменная);"-это то же самое что и "i++;" в С....да?
Романнн вне форума Ответить с цитированием
Старый 19.12.2007, 13:16   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

F1 вас не достоин ?

Syntax


[Delphi] procedure Inc(var X: Integer); overload;



[Delphi] procedure Inc(var X: Integer; N: Integer); overload;


Description

In Delphi code, Inc adds one or N to the variable X.

X is a variable of an ordinal type (including Int64), or a pointer type if the extended syntax is enabled.

N is an integer-type expression.
X increments by 1, or by N if N is specified; that is, Inc(X) corresponds to the statement X := X + 1, and Inc(X, N) corresponds to the statement X := X + N. On some platforms, Inc may generate optimized code, especially useful in tight loops.

If X is a pointer type, it increments X by N times the size of the type pointed to. Thus, given
type
PMyType = ^TMyType;
and
var
P: PMyType;
the statement Inc(P) increments P by SizeOf(TMyType).
Warning:
You can't use Inc on properties because it modifies the parameter.

Note:
Inc(S, I) where S is a ShortInt and I is a number greater than 127 will cause an EIntOverFlow exception to be raised if range and overflow checking are on. In Delphi 1.0, this did not raise an exception.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.12.2007, 13:16   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Да
inc(i) это i++
inc(i,x) соотвестсвенно i += x
пыщь
JTG вне форума Ответить с цитированием
Старый 19.12.2007, 13:16   #10
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

а если у меня на форме будет 50 тех же прогрессбаров, то к каждому таймер прикреплять чтоли?
Романнн вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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