Progress bar

0

HEJA!!
chce aby podczas kopiowania pliku w moim programie pokazany był pasek postępu. Tylko nie wiem jak <ort>obslozyc </ort>ProgressBar pod BCB 4.
!!!NIE ODSYŁAJCIE MNIE DO INNYCH POSTÓW BO JUZ CZYTAŁEM!!!
!!!ALE NIC NIE SKUMAŁEM!!!

// to nie pytaj, bo odpowiedzi też nie zrozumiesz - ŁF

0
int x=100;               //lub inna
ProgressBar1->MaxValue=x;
while(.....)
         {
       .....
       ProgressBar1->Add(1);
       .....
         }

pisze z pamieci wiec pewnie cos pominolem...
A tak na przyszlosc to laskawy pan raczy z helpa skorzystac...

0

Dzięki, tylko ze Borland pluje sie ze Add nie jest wlasciwoscia komponentu TProgressBar. Zastosowałem w twojej petli StepIt + 1 ale podczas kopiowania ProgressBar ruszyl sie tylko o jedna kreske i koniec. Tosamo bylo jak uzylem ProgressBar->Position = ProgressBar->Position + 1; POMOCY
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P O M O C Y!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0

Ale pętle masz prawidłowo?

0

metoda toporna

progressbar1->position=progressbar1->position+1;
0

OK WRZUCAM KOD KTORY KOMPILUJE:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x=100; //lub inna

ProgressBar1->Max=x;
while(CopyFile("c:\plik1.mp3", "c:\plik2.mp3", true))
{
ProgressBar1->Position=ProgressBar1->Position+1;
}
KIEDY KLIKNE BUTTON1, PROGRESSBAR PRZECHDZI TYLKO JEDNA KRATECZKE DO PRZODU I KONIEC. PLIK JEST SKOPIOWANY. ALE PROGRESSBAR ZATRZYMUJE SIE PO JEDNEJ KRESCE:((((!!!!BŁE
PROSZE!! [nuda] , NIECH KTOS PRZEANALIZUJE TEN KOD

0
while(CopyFile("c:\\plik1.mp3", "c:\\plik2.mp3", true)) { ProgressBar1->Position=ProgressBar1->Position+1; }

Po pierwsze:
CopyFile() zwraca wartosc 0, gdy kopiowanie sie nie powiodlo, jezeli sie powiodlo to wartosc rozna od zera.

nie sprawdzalem, ale w parametrach wpisales, ze CopyFile() ma nadpisywac plik, jezeli takowy juz istnieje, wiec petla bedzie wykonywala sie w nieskonczonosc (poniewaz za kazdym razem CopyFile() zwroci TRUE)

Jezeli chcesz to robic w taki sposob, to musisz odczytywac plik stopniowo (po kilka bajtow) i wtedy ustalac pozycje w ProgressBar.
W BCB mozna uzyc do takiego kopiowania funkcji FileRead() i FileWrite() (szczegoly w pomocy do BCB)

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