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.
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.
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;
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
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.
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.
- w formie z procedurą dodaj zmienną prywatną InterruptLoop: Boolean
- w procedurze na początku daj InterruptLoop:=False
- dodaj metodę Interrupt która robi InterruptLoop:=True
- w pętli po zmianie progressbara daj
Application.ProcessMessages;
if InterruptLoop
then Break
- przycisk na formie z progressbarem powinien wykonywać Interrupt formy z procedurą