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ę.
0
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.