![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день!
Ситуация следующая. У меня есть процедуры, общего назначения, которые выполняют КУЧУ вычислений и занимают длительное время. Эти процедуры использубтся разными классами и разными формами в разное время. Подскажите как мне правлино написать эту процедуру, чтоб я в каждой форме мог использовать 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 |