Показать сообщение отдельно
  #16  
Старый 12.02.2011, 13:19
Yamaha Yamaha вне форума
Прохожий
 
Регистрация: 10.02.2011
Сообщения: 14
Репутация: 10
По умолчанию

Щас еще такая проблема ребята: создал я шесть лейблов со временем, первый утро, второй обед, третий предзакат, четвертый вечер, пятый ночь и шестой рассвет внизу окна и кинул на форму пять прогрессбаров. Первый прогрессбар отсчитывает время от первого лейбла с утренним временем до рассвета, второй от второго лейбла с обеденным временем и до времени третьего лейбла, с предзакатным временем, третий прогрессбар время от третьего лейбла с предзакатным временем и до четвертого лейбла с вечерним временем, четвертый прогрессбар время от четвертого лейбла с вечерним временем до пятого лейбла с ночным временем, и пятый прогрессбар время от пятого лейбла с ночным временем и до времени первого лейбла с утренним временем.
А теперь у меня вопрос, почему при запуске программы у меня запускаются все прогрессбары, мой код см. ниже

Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls;

type
  TForm2 = class(TForm)
    LabelUtro: TLabel;
    LabelObed: TLabel;
    ProgressBarUtro: TProgressBar;
    TimerUtro: TTimer;
    ProgressBarObed: TProgressBar;
    ProgressBarPredzakat: TProgressBar;
    ProgressBarVecher: TProgressBar;
    ProgressBarNoch: TProgressBar;
    TimerObed: TTimer;
    TimerPredzakat: TTimer;
    TimerVecher: TTimer;
    TimerNoch: TTimer;
    LabelPredzakat: TLabel;
    LabelVecher: TLabel;
    LabelNoch: TLabel;
    LabelRassvet: TLabel;
    procedure FormShow(Sender: TObject);
    procedure TimerUtroTimer(Sender: TObject);
    procedure TimerObedTimer(Sender: TObject);
    procedure TimerPredzakatTimer(Sender: TObject);
    procedure TimerVecherTimer(Sender: TObject);
    procedure TimerNochTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  RazUtroRassvet, RazObedPredzakat, RazPredzakatVecher, RazVecherNoch, RazNochUtro,
  RazUtroNow, RazObedNow, RazPredzakatNow, RazVecherNow, RazNochNow,
  BarUtroNow, BarObedNow, BarPredzakatNow, BarVecherNow, BarNochNow,
  PerUtroRassvet, PerObedPredzakat, PerpredzakatVecher, PerVecherNoch, PerNochUtro:integer;
implementation

{$R *.dfm}

procedure TForm2.FormShow(Sender: TObject);
var
TimeUtro, TimeObed, TimePredzakat, TimeVecher, TimeNoch, TimeRassvet, TimePolnoch: TDateTime;
begin

TimeUtro:=StrtoTime(LabelUtro.Caption);
TimeObed:=StrtoTime(LabelObed.Caption);
TimePredzakat:=StrtoTime(LabelPredzakat.Caption);
TimeVecher:=StrtoTime(LabelVecher.Caption);
TimeNoch:=StrtoTime(LabelNoch.Caption);
TimeRassvet:=StrtoTime(LabelRassvet.Caption);
TimePolnoch:=StrToTime('23:59');

//---------------------------------------------------------------------------------------------------------
RazUtroNow:=((StrToInt(FormatDateTime('h',Time)))*60+StrToInt(FormatDateTime('n',Time)))*60-
((StrToInt(FormatDateTime('h',TimeUtro)))*60+StrToInt(FormatDateTime('n',TimeUtro)))*60;

RazObedNow:=((StrToInt(FormatDateTime('h',Time)))*60+StrToInt(FormatDateTime('n',Time)))*60-
((StrToInt(FormatDateTime('h',TimeObed)))*60+StrToInt(FormatDateTime('n',TimeObed)))*60;

RazPredzakatNow:=((StrToInt(FormatDateTime('h',Time)))*60+StrToInt(FormatDateTime('n',Time)))*60-
((StrToInt(FormatDateTime('h',TimePredzakat)))*60+StrToInt(FormatDateTime('n',TimePredzakat)))*60;

RazVecherNow:=((StrToInt(FormatDateTime('h',Time)))*60+StrToInt(FormatDateTime('n',Time)))*60-
((StrToInt(FormatDateTime('h',TimeVecher)))*60+StrToInt(FormatDateTime('n',TimeVecher)))*60;

RazNochNow:=((StrToInt(FormatDateTime('h',Time)))*60+StrToInt(FormatDateTime('n',Time)))*60-
((StrToInt(FormatDateTime('h',TimeNoch)))*60+StrToInt(FormatDateTime('n',TimeNoch)))*60;
//-------------------------------------------------------------------------------------------------------------

//-------------------
RazUtroRassvet:=((StrToInt(FormatDateTime('h',TimeRassvet)))*60+StrToInt(FormatDateTime('n',TimeRassvet)))*60-
((StrToInt(FormatDateTime('h',TimeUtro)))*60+StrToInt(FormatDateTime('n',TimeUtro)))*60;

RazObedPredzakat:=((StrToInt(FormatDateTime('h',TimePredzakat)))*60+StrToInt(FormatDateTime('n',TimePredzakat)))*60-
((StrToInt(FormatDateTime('h',TimeObed)))*60+StrToInt(FormatDateTime('n',TimeObed)))*60;

RazPredzakatVecher:=((StrToInt(FormatDateTime('h',TimeVecher)))*60+StrToInt(FormatDateTime('n',TimeVecher)))*60-
((StrToInt(FormatDateTime('h',TimePredzakat)))*60+StrToInt(FormatDateTime('n',TimePredzakat)))*60;

RazVecherNoch:=((StrToInt(FormatDateTime('h',TimeNoch)))*60+StrToInt(FormatDateTime('n',TimeNoch)))*60-
((StrToInt(FormatDateTime('h',TimeVecher)))*60+StrToInt(FormatDateTime('n',TimeVecher)))*60;

RazNochUtro:=60+((StrToInt(FormatDateTime('h',TimePolnoch)))*60+StrToInt(FormatDateTime('n',TimePolnoch)))*60-
((StrToInt(FormatDateTime('h',TimeNoch)))*60+StrToInt(FormatDateTime('n',TimeNoch)))*60+((StrToInt(FormatDateTime('h',TimeUtro)))*60+StrToInt(FormatDateTime('n',TimeUtro)))*60;
//-------------------

if RazUtroRassvet Mod 2 <> 0 then RazUtroRassvet:=RazUtroRassvet-1;
if RazObedPredzakat Mod 2 <> 0 then RazUtroRassvet:=RazUtroRassvet-1;
if RazPredzakatVecher Mod 2 <> 0 then RazUtroRassvet:=RazUtroRassvet-1;
if RazVecherNoch Mod 2 <> 0 then RazUtroRassvet:=RazUtroRassvet-1;
if RazNochUtro Mod 2 <> 0 then RazUtroRassvet:=RazUtroRassvet-1;

PerUtroRassvet:=RazUtroRassvet div 100;
PerObedPredzakat:=RazObedPredzakat div 100;
PerPredzakatVecher:=RazPredzakatVecher div 100;
PerVecherNoch:=RazVecherNoch div 100;
PerNochUtro:=RazNochUtro div 100;

BarUtroNow:=RazUtroNow div PerUtroRassvet;
BarObedNow:=RazObedNow div PerObedPredzakat;
BarPredzakatNow:=RazPredzakatNow div PerPredzakatVecher;
BarVecherNow:=RazVecherNow div PerVecherNoch;
BarNochNow:=RazNochNow div PerNochUtro;

ProgressBarUtro.Position:=ProgressBarUtro.Position+BarUtroNow;
ProgressBarObed.Position:=ProgressBarObed.Position+BarObedNow;
ProgressBarPredzakat.Position:=ProgressBarPredzakat.Position+BarPredzakatNow;
ProgressBarVecher.Position:=ProgressBarVecher.Position+BarVecherNow;
ProgressBarNoch.Position:=ProgressBarNoch.Position+BarNochNow;


if StrToTime(LabelUtro.Caption+':00') <= Time then TimerUtro.Enabled:=True;
if StrToTime(LabelObed.Caption+':00') <= Time then TimerObed.Enabled:=True;
if StrToTime(LabelPredzakat.Caption+':00') <= Time then TimerPredzakat.Enabled:=True;
if StrToTime(LabelVecher.Caption+':00') <= Time then TimerVecher.Enabled:=True;
if StrToTime(LabelNoch.Caption+':00') <= Time then TimerNoch.Enabled:=True;

TimerUtro.Interval:=TimerUtro.Interval*PerUtroRassvet;
TimerObed.Interval:=TimerObed.Interval*PerObedPredzakat;
TimerPredzakat.Interval:=TimerPredzakat.Interval*PerPredzakatVecher;
TimerVecher.Interval:=TimerVecher.Interval*PerVecherNoch;
TimerNoch.Interval:=TimerNoch.Interval*PerNochUtro;

end;

procedure TForm2.TimerUtroTimer(Sender: TObject);
begin
ProgressbarUtro.Position :=  ProgressbarUtro.Position + 1;
if ProgressbarUtro.Position = 100 then TimerUtro.Enabled := false;
end;



procedure TForm2.TimerObedTimer(Sender: TObject);
begin
ProgressbarObed.Position :=  ProgressbarObed.Position + 1;
if ProgressbarObed.Position = 100 then TimerObed.Enabled := false;
end;

procedure TForm2.TimerPredzakatTimer(Sender: TObject);
begin
ProgressbarPredzakat.Position :=  ProgressbarPredzakat.Position + 1;
if ProgressbarPredzakat.Position = 100 then TimerPredzakat.Enabled := false;
end;

procedure TForm2.TimerVecherTimer(Sender: TObject);
begin
ProgressbarVecher.Position :=  ProgressbarVecher.Position + 1;
if ProgressbarVecher.Position = 100 then TimerVecher.Enabled := false;
end;

procedure TForm2.TimerNochTimer(Sender: TObject);
begin
ProgressbarNoch.Position :=  ProgressbarNoch.Position + 1;
if ProgressbarNoch.Position = 100 then TimerNoch.Enabled := false;
end;

end.
Ответить с цитированием