Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо