|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.08.2007, 11:00 | #1 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Progressbar или Gauge
Есть текстовый, нужно чтобы программа прочитала строки в файле и при этом работал Gauge или ProgressBar, но проблема состоит в том, что файл очень большой (сотни тысяч строк) и почему-то Gauge имеет ограничение максимального значения и, соответственно, не работает... Не подскажете как в таких случаях отображать подобный процесс?
|
17.08.2007, 11:07 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А чему равно MaxValue в этих компонентах?
I'm learning to live...
|
17.08.2007, 11:10 | #3 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Последнему индексу строки текстового файла. Например, 700 000
|
17.08.2007, 11:17 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
У меня работает. Код покажи.
I'm learning to live...
|
17.08.2007, 11:25 | #5 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
procedure TForm1.N2Click(Sender: TObject);
var i:integer; k:integer; t:string; //значение глубины из файла p,z:integer; //позиция 'E' и '.' в строке buf:string; //строка в файле x:real; y:real; f: TextFile; fName: String; begin Series1.Clear; Chart1.UndoZoom; if not OpenDialog1.Execute then exit else fName:=OpenDialog1.FileName; label3.Caption:=fName; AssignFile(f,fName); form1.Caption:='Filter - '+fName; try Reset(f); except on EInOutError do begin ShowMessage('Ошибка доступа к файлу '+ fName); exit; end; end; form4.Visible:=true; i:=0; while not EOF(f) do begin readln(f,buf); p:=pos('E',Buf); t:=Copy(Buf,P+2,6); z:=pos('.',t); insert(',',t,z); delete(t,z+1,1); If p<>0 then y:=StrToFloat(t) else exit; x:=x+0.1; Series1.AddXY(x,y); series1.Labels[i]:=copy(Buf,0,p+1); i:=i+1; srezka.Caption:='СРЕЗКА: '+'0'+' см'; end; form4.Gauge1.MaxValue:=700000; // к примеру... //(а в файле действительно столько строк) form4.Gauge1.Progress:=i; form4.Visible:=False; CloseFile (f); end; |
17.08.2007, 11:25 | #6 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
В процентах попробуй.
Life is too short, play more...
Как правильно задавать вопросы |
17.08.2007, 11:31 | #7 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Не-а, такая же фигня... не отображает почему-то... увы и ах...
|
17.08.2007, 11:34 | #8 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Такбы сразу и сказал:
Попробуй так: Код:
Код:
Life is too short, play more...
Как правильно задавать вопросы |
17.08.2007, 11:39 | #9 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Красиво, конечно, выводит график постепенно (у меня прога рисует график), но... очень медленно. Процесс никак ускорить нельзя?
|
17.08.2007, 11:42 | #10 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Integer –2147483648..2147483647 signed 32-bit
Life is too short, play more...
Как правильно задавать вопросы |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вопрос про Gauge | Diamand | Компоненты Delphi | 7 | 28.11.2013 13:11 |
ProgressBar | Makarov | Компоненты Delphi | 3 | 04.02.2008 22:42 |
ProgressBar | Rahim1993 | Общие вопросы Delphi | 10 | 20.01.2008 21:28 |
ProgressBar | pentiumForever | Компоненты Delphi | 2 | 07.09.2007 13:33 |