Kalan süreyi ProgressBar ile gösterme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Kalan süreyi ProgressBar ile gösterme

Mesaj gönderen hido »

Merhaba,

Bilgisayarı kapatmaK için ufak bir program yazıyorum progressbar kullanarak bilgisayarın kapanmasına son iki dakika kalınca progressbar ile kalan süreyi nasıl eşitleyebilirim...

Kod: Tümünü seç

     begin
         ProgressBar1.Position :=  ProgressBar1.Position + 1;
      end
      else
      begin
         if (TimeToStr(Basla) = TimeToStr(Bitis)) then
          begin
              Winexec('shutdown -s -t 0 -f -c "Bilgisayar Kapanıyor"', sw_normal);
          end;
        end;
      end;
  except
  end;
end;
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Kalan süreyi ProgressBar ile gösterme

Mesaj gönderen Hashirama »

Şu şekilde bi şey yapılabilir.

Kod: Tümünü seç

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    Edit1: TEdit;
    Label1: TLabel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

kalan_sure:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  kalan_sure:=strtoint(edit1.Text)*60;
  timer1.Enabled:=true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;
ProgressBar1.Min:=0;
ProgressBar1.Max:=120;
FormStyle:=fsStayOnTop;
ProgressBar1.Step:=1;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
dec(kalan_sure) ;
button1.Caption:=inttostr(kalan_sure) ;

if kalan_sure<120 then
begin
    ProgressBar1.Position:=kalan_sure;  // geri sayım
  //  ProgressBar1.Position:=120 -kalan_sure; //ileri sayım için
end;

if kalan_sure=0 then
   Begin
     Timer1.Enabled:=false;
     Winexec('shutdown -s -t 0 -f -c "Bilgisayar Kapanıyor"', sw_normal);
   End;


end;

end.
Resim
Cevapla