ProgresBar i zrzut ekranu

0

try
{ tworzenie zmiennej }
Can := TCanvas.Create;
{ przechwycenie uchwytu ekrnau }
Can.Handle := GetWindowDC(GetDesktopWindow);
{ tworzenie bitmapy }
B := TBitmap.Create;
B.Width := Screen.Width;
B.Height := Screen.Height;
B.Canvas.CopyRect(Rect(0, 0, Screen.Width, Screen.Height),
Can,
Rect (0, 0, Screen.Width, Screen.Height));
i := i+1; // dodawanie kolejnego numeru
try
{zapisujemy zrzut ekranu na razie do pliku BMP}
B.SaveToFile(Driver.Text + Edit1.Text + inttostr(i) + '.bmp');
{nazwa dysku + nazwa pliku + dodaj kolejny nr pliku + rozszerzenie BMP}
except // w wyniku bledu...
raise Exception.Create('Nieznany błąd w zapisie pliku...');
end;
finally
Can.Free;
B.Free;
end;
begin
try
{teraz konwersja z BMP do JPG, czyli 3300 kb do 180 kb}
B := TBitmap.Create;
B.LoadFromFile(Driver.Text + Edit1.Text + inttostr(i) + '.bmp');
JPG := TJPEGImage.Create;
JPG.Assign(B);
JPG.SaveToFile(Driver.Text + Edit1.Text + inttostr(i) + '.jpg');
finally
B.Free;
JPG.Free;
begin
try
{teraz trzeba plik BMP usunąć pozostawiony po konwersji}
DeleteFile(Driver.Text + Edit1.Text + inttostr(i) + '.bmp');
licznik.Increase;
except
raise Exception.Create('Błąd przy tworzeniu zrzutu...');
end;
end;
end;
end;

Mamy tak procedure w jaki sposob dodac do niej Progresbar???
Zeby podczas robienia zrzut byl pasek postepu.

0

Jeśli jest wykonywany tylko jeden zrzut to chyba nie ma sensu robić do tego progressbara. Jakbyś się uparł, to byś musiał napisać własną klase czy procedury do obsługi (conajmniej zapisywania) bitmap i jpga... I wtedy i tak mogłoby być ciężko to napisać :]

0

Ewentualnie można się pokusić o łatwizne.. stworzyć wątek, który będzie poruszał jakiś "niekończącym się" Progressem (jak instalacje Windowsa).. chyba, że koniecznie musi pokazywać początek i koniec.

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