Progressbar Pomocy

0

siemka dopiero zaczynam w delphi i chcialbym wiedziec na jakiej zasadzie dziala progressbar :D jak moge go przetestowac np chcę aby po kliknieciu w button prgressbar zaczynal od poczatku i konczyl chodzi mi o symulacje ładowania z góry dziękuję.

1

To najpierw googluj, później pytaj. Można użyć Timera, można użyć wątku. Oto przykład z wątkiem:

//..
  public
    Thr : TThread;
  end;

type
  TPBThr = class(TThread)
  protected
    procedure Execute; override;
  end;

var
  Form1 : TForm1;

implementation

{$R *.dfm}

function RandomRange(const AFrom, ATo : integer) : integer;
begin
  if AFrom > ATo then
    Result := Random(AFrom - ATo) + ATo
  else
    Result := Random(ATo - AFrom) + AFrom;
end;

procedure TPBThr.Execute;
begin
  with Form1 do
  begin
    ProgressBar1.Position := 0;
    ProgressBar1.Max := RandomRange(10, 101);
    while (ProgressBar1.Position < ProgressBar1.Max) do
    begin
      ProgressBar1.Position := ProgressBar1.Position + 1;
      Sleep(100);
    end;
  end;
end;

procedure TForm1.FormCreate(Sender : TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender : TObject);
begin
  if Thr = nil then
  begin
    Thr := TPBThr.Create(False);
  end
  else
  begin
    if Thr.Suspended = True then
    begin
      Thr := TPBThr.Create(False);
    end
    else
    begin
      Thr.Suspend;
    end;
  end;
end;
0

o ja... Olesio, co to za kod ?
w ogole nie thread-safe, a jak dajesz wątek to przy okazji przydaolby sie go "jakos zakonczyc"....

0

Oj dobra, wiem kod idealny nie jest, powinno być Synchronize jak odwolujemy się do zawartości
Formatki, ale z pobieżnych testow wynikało, że działa i demonstruje jak się ProgressBar zmienia.
A więcej informacji pytający niech poszuka w googlach, bo Newbie - Newbiem, ale bez przesady.

1 użytkowników online, w tym zalogowanych: 0, gości: 1