Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.07.2009, 22:57   #11
fitc
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 15
По умолчанию

Спасибо Lime и goblinyara!!!

Цитата:
Сообщение от RNT Посмотреть сообщение
Код:
3) как применить компонент progressbar к функции?
Возможно , вам нужно применить его к циклу ?
Нет именно к функции у меня идет считывание информации из базы некоей программы и запись нужной мне части в текстовый файл и мне надо бы прилепить к этому прогресс бар
П.С. Извините исходника в данный момент у меня не имеется.

Последний раз редактировалось Stilet; 13.07.2009 в 11:02.
fitc вне форума
Старый 11.07.2009, 00:00   #12
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Немного не в тему, но все же. (так на будущее)
Что бы русские символы отображались на форуме нормально, нужно:
Открыть файл с исходным кодом (по умолчанию это Unit1.pas) через блокнот и скопировать из него.
psycho-coder вне форума
Старый 11.07.2009, 07:58   #13
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
Нет именно к функции у меня идет считывание информации из базы некоей программы и запись нужной мне части в текстовый файл и мне надо бы прилепить к этому прогресс бар
принципиальная схема использования прогрессбара
Код:
progressbar.min:=0;
progressbar.max:=nn;
progrssbar.pos:=0;
for j:=0 to nn do
begin
//код для обработки 1/nn-ой части 
progressbar.pos:=j; // можно progressbar.pos:=progressbar.pos+d;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума
Старый 12.07.2009, 23:18   #14
fitc
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
принципиальная схема использования прогрессбара
Код:
progressbar.min:=0;
progressbar.max:=nn;
progrssbar.pos:=0;
for j:=0 to nn do
begin
//код для обработки 1/nn-ой части 
progressbar.pos:=j; // можно progressbar.pos:=progressbar.pos+d;
end;
Ясно) а можете написать как прогресс бар связать с временем, чтобы, например, за 3мин. он дошел до 99% ?
fitc вне форума
Старый 12.07.2009, 23:29   #15
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

в проресс бар укажи
Код:
Min := 0;
Max := 180000;// это 3 мин
Таймер

Код:
Interval := 1000;
в таймере пиши
Код:
  if Timer1.Interval = 180000 then Timer1.Enabled := false;
 ProgressBar1.Position := ProgressBar1.Position + Timer1.Interval;
psycho-coder вне форума
Старый 12.07.2009, 23:52   #16
fitc
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 15
По умолчанию

странно, но почему то очень быстро пробегается
Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;

type
TForm1 = class(TForm)
ProgressBar1: TProgressBar;
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var Min,Max, interval:integer;
begin
Min:=0;
Max:=180000;
interval:=1000;
if Timer1.Interval = 180000 then Timer1.Enabled := false;
ProgressBar1.Position := ProgressBar1.Position + Timer1.Interval;
end;

end.
fitc вне форума
Старый 12.07.2009, 23:58   #17
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Улыбнуло

У объекта Timer есть параметр Interval. Это так сказать период через который он будет выполнять действие. Например:

Timer1.Interval := 1000; //Срабатывание таймера с периодом 1 сек.

Значение Interval не меняется самопроизвольно. Только принудительно:
Timer1.Interval := .....

Щёлкните на Timer(на форме его значёк) два раза вызвав его событие (не вспомню щас какое имено, но вроде называется Timer). И там запишите:

ProgressBar1.Position := ProgressBar1.Position + 10;


адд:
Позволю себе небольшую лекцию по работе с объектами:
Кинте(двойной щелчок) на форму ProgressBar (вкладка Win32). Он появился на форме. Сделайте по появившемуся ProgressBar'у щелчок мышкой. Он выделиться и в левой части экрана будут доступны его свойства. Это окно Object Inspectors у которого есть две вкладки Properties и Events.

На вкладке Properties находяться все свойства компонента которые доступны для редактирования. На вкладке Events доступны все события с которым этот объект связан.

Выбери ProgressBar и зайди на вкладку Properties. Там найди свойства и установи их в нужные значения:

Min := 0;
Max := 180000;// это 3 мин

Это ты установил "обьём" прогресбара. Тоесть если ProgressBar1.Position будет равен 180000, то прогресбар будет выглядить полным.
Вродебы с прогресбаром всё.

Теперь тоже самое с Таймером. Кинь его на форму и установи свойство Interval = 1000. Это будет соответсвовать периоду 1 сек.
Сделай двойной щелчок на Таймере чтоб вызвать его событие, а Delphi добавит код процедуры:

procedure TForm1.Timer1Timer(Sender: TObject);

Где между Begin и End нужно написать:

ProgressBar1.Position := ProgressBar1.Position + 100;
If ProgressBar1.Position = 180000 Then Timer1.Enabled := False;

Enabled - вкл.(True) или выкл.(False) таймер.

//Эт так всё на вскидку.. Для 3 мин сам допишешь...

адд:
Правильнее написать:
Код:
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
If ProgressBar1.Position > ProgressBar1.Max Then Timer1.Enabled := False;
ProgressBar1.Position := ProgressBar1.Position + 100;
End;
Где изменяя значение приращения (в данном случае 100) и Interval таймера можно получить то что хочеться.

Последний раз редактировалось Вавел из ГМТУ; 13.07.2009 в 00:18.
Вавел из ГМТУ вне форума
Старый 13.07.2009, 00:05   #18
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Я думал додумается ))
psycho-coder вне форума
Старый 13.07.2009, 00:10   #19
fitc
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 15
По умолчанию

Хмм, учусь что поделать
Спасибо psycho-coder и Вавел из ГМТУ
fitc вне форума
Старый 13.07.2009, 11:03   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что бы русские символы отображались на форуме нормально, нужно:
Открыть файл с исходным кодом (по умолчанию это Unit1.pas) через блокнот и скопировать из него.
Неверный ответ. Нужно просто перед копированием включить русскую раскладку
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов pix_l Общие вопросы Delphi 1 29.03.2009 22:26
Несколько вопросов Зубоскалик Общие вопросы Delphi 14 20.11.2008 14:28
несколько вопросов по RichEdit TaTT DoGG Компоненты Delphi 4 27.05.2008 10:57
Несколько Вопросов Дорст Общие вопросы Delphi 3 12.11.2007 09:18