|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как правильно задействовать TProgressBar?
Добрый день!
Ситуация следующая. У меня есть процедуры, общего назначения, которые выполняют КУЧУ вычислений и занимают длительное время. Эти процедуры использубтся разными классами и разными формами в разное время. Подскажите как мне правлино написать эту процедуру, чтоб я в каждой форме мог использовать TProgressBar. Я пытался передать указатели на ProgressBar1.Position, ProgressBar1.Min и ProgressBar1.Max а компилятор подсказал, что так нельзя . Что делать? |
#2
|
|||
|
|||
Переай указатель на TProgressBar в целом. И переодически делай Application.ProcessMesages; (Вроде так)
|
#3
|
|||
|
|||
Ну смотря вообще, что там у тебя.. а так например мона так...
Код:
procedure TForm1.Button1Click(Sender: TObject); var Buf: Byte; F : TFileStream; M : TFileStream; begin m := TFileStream.Create('E:\xlam.exe',fmOpenRead); F := TFileStream.create('C:\xlam.exe',fmCreate or fmSharedenyWrite); while M.position < M.size do begin M.readbuffer(buf,Sizeof(buf)); F.Writebuffer(buf,SizeOf(buf)); progressbar1.position := trunc(100*M.position/M.Size); application.processmessages; end; F.free; M.free; end; Я как-то раз таким способом файлы копировал, незнаю.. зачем даж так делал... ========== всегда играю в flash игры бесплатно на www.nogame.ru |