![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TrackBar и время [D7, XP]
MSVN © (2006-08-04 08:22:00)Добрый день!
Есть TrackBar у которого макс. значениее постоянное. Так же есть таймер который отсчитывает время указанное пользователем. Требуется что бы у TrackBar ползунок постепенно снижал свою позициию (относительно времени).
Например, ползунок стоит на макс. значении, пользователь указал 21 мин. 55 сек. и начался отчет времени. Как сделать что б за это время ползунок приблизился к минимальной точке?
Всем спасибО!
Elen (2006-08-04 09:16:00) [1]Тогда тебе надо вычислить шаг изменения типа
st:=65000/(21*60+55)
TrackBar1.Max:=65000
а в процедуре прописать
TrackBar1.Position:=TrackBar1.Position-st
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
TrackBar1: TTrackBar;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var st:integer;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
TrackBar1.Max:=65000;
st:=round(65000/(21*60+55))
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.Position:=TrackBar1.Position-st;
end;
end.
> максимальное значение int16 скорее всего..
Это не я говорю
MSVN (2006-08-04 09:02:00) [2]to Elen
> максимальное значение int16 скорее всего..
а почему?
MSVN (2006-08-04 08:59:00) [3]нет, просто изначально задана цифра от которой надо отталкиваться.
07BB (2006-08-04 08:54:00) [4]Elen © (04.08.06 08:52) [4]
максимальное значение int16 скорее всего..
Elen (2006-08-04 08:52:00) [5]
> а если TrackBar.max = 65000 ?? и менять его нельзя?
Уточни почему? Что это за цифра преткновения? Поподробнее обьясни задачу.
07BB (2006-08-04 08:51:00) [6]MSVN (04.08.06 08:45) [2]
Тогда двигай в зависимости от времяни, скажем не каждую секунду а раз в три секунды
MSVN (2006-08-04 08:45:00) [7]а если TrackBar.max = 65000 ?? и менять его нельзя? объясните плиз.
Elen (2006-08-04 08:29:00) [8]Пробуй так
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
TrackBar1: TTrackBar;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
TrackBar1.Max:=21*60+55;
TrackBar1.Position :=TrackBar1.Max;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.Position:=TrackBar1.Position-1;
end;
end.