Pasek postępu

0

Witam potrzebuje zrobić pasek postępu. W oknie głównym wykonuje sie jakaś operacja natomiast pasek pokazywałby się w osobnym oknie i odzwierciedlał stan operacji z tego pierwszego. Prosze o jakies wskazowki.

0

Można to zrobić w oparciu o komunikaty - pierwsze okno wysyła komunikat np. o przyroście, parametrze max itp., natomiast, w drugim formularzu jest obsługa przychodzącego komunikatu/ów.

0

jeżeli operacja znajduje się na Form1 a pasek jest na Form2, to wystarczy się odwołać poprzez:

procedure NaFormiePierwszej;
begin
  Form2.ProgressBar1.Position:=.... ;// (nie pamiętam dokładnie jak się to pisze)
end;
0

Można to zrobić w oparciu o komunikaty - pierwsze okno wysyła komunikat np. o przyroście, parametrze max itp., natomiast, w drugim formularzu jest obsługa przychodzącego komunikatu/ów.

[rotfl] [rotfl] [rotfl]

forma1:
for i:=0 to 10 do form2.progressbar.position:=i;

po co komunikaty :d

PS. jak przy kompilowaniu wyskoczy okienko to klikasz YES i jeszcze raz kompiluj

0

OK pasek sie ort!. Jeszcze tylko potrzbuje umieścić na oknie z paskiem przycisk przerwania który przerywałby proces na formie pierwszej. W obecnej chwili przycisk na oknie z paskiem nie odpowiada.

0

OK pasek sie ort!. Jeszcze tylko potrzbuje umieścić na oknie z paskiem przycisk przerwania który przerywałby proces na formie pierwszej. W obecnej chwili przycisk na oknie z paskiem nie odpowiada.

  1. w formie z procedurą dodaj zmienną prywatną InterruptLoop: Boolean
  2. w procedurze na początku daj InterruptLoop:=False
  3. dodaj metodę Interrupt która robi InterruptLoop:=True
  4. w pętli po zmianie progressbara daj
    Application.ProcessMessages;
    if InterruptLoop
    then Break
  5. przycisk na formie z progressbarem powinien wykonywać Interrupt formy z procedurą

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