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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2012, 14:24   #1
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию Метод работы с Case

Хочу прикрепить к форме таймер с прогресбаром. Так же присудствует комбобокс. Хочу сделать так В комбобоксе выбираешь через сколько минут закрыть. например 5 это задаёт переменной i:=300; если делять то 600. в секундах. в общем толи я что то не так делаю, но у меня чтобы я не присваивал i всё равно = 300.

в общем вот код:

procedure TForm1.Timer1Timer(Sender: TObject);
var j: integer;
begin
i:=i-1;
Label1.Caption:='У вас осталось '+inttostr(i)+' секунд';
ProgressBar1.Position:=i;
if i=0 then
begin
Timer1.Enabled:=false;
j:=Form2.ShowModal;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);

begin
Case ComboBox1.ItemIndex of
0: i:=300;
1: i:=600;
2: i:=900;
3: i:=1200;
4: i:=1500;
end;


end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
end;

end.
m1zantrop вне форума Ответить с цитированием
Старый 24.04.2012, 14:30   #2
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

поместите
Код:
Case ComboBox1.ItemIndex of
0: i:=300;
1: i:=600;
2: i:=900;
3: i:=1200;
4: i:=1500;
в процедуру
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
kta87 вне форума Ответить с цитированием
Старый 24.04.2012, 14:32   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Case ComboBox1.ItemIndex of
0: i:=300;
1: i:=600;
2: i:=900;
3: i:=1200;
4: i:=1500;
end;
Timer1.Enabled:=true;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 24.04.2012, 14:32   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

или в onchange у ComboBox1
Кольша вне форума Ответить с цитированием
Старый 24.04.2012, 14:35   #5
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

Цитата:
Сообщение от kta87 Посмотреть сообщение
поместите
Код:
Case ComboBox1.ItemIndex of
0: i:=300;
1: i:=600;
2: i:=900;
3: i:=1200;
4: i:=1500;
в процедуру
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
теперь у меня отчет идёт от -1 и уходит в минус. а должен от суммы которая была присвоена i и до 0
m1zantrop вне форума Ответить с цитированием
Старый 24.04.2012, 14:37   #6
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Выше на пост посмотрите!
Кольша вне форума Ответить с цитированием
Старый 24.04.2012, 14:38   #7
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Case ComboBox1.ItemIndex of
0: i:=300;
1: i:=600;
2: i:=900;
3: i:=1200;
4: i:=1500;
end;
Timer1.Enabled:=true;
end;
спасибо, заработало

еще вопрос, как туда влепить, что если i:=300; то
ProgressBar1.Max:=300;
ProgressBar1.Min:=0;

если i:=600; то

ProgressBar1.Max:=600;
ProgressBar1.Min:=0;

в общем чтобы прогресбар шел в ногу со временем, а не как ему вздумается
m1zantrop вне форума Ответить с цитированием
Старый 24.04.2012, 14:41   #8
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Код:
Case ComboBox1.ItemIndex of
0: i:=300;
1: i:=600;
2: i:=900;
3: i:=1200;
4: i:=1500;
end;
ProgressBar1.Max:=i;
ProgressBar1.Min:=0;
Кольша вне форума Ответить с цитированием
Старый 24.04.2012, 14:43   #9
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

Цитата:
Сообщение от Кольша Посмотреть сообщение
Код:
Case ComboBox1.ItemIndex of
0: i:=300;
1: i:=600;
2: i:=900;
3: i:=1200;
4: i:=1500;
end;
ProgressBar1.Max:=i;
ProgressBar1.Min:=0;
спасибо

всем спасибо)

извеняюсь за глупые вопросы
m1zantrop вне форума Ответить с цитированием
Старый 24.04.2012, 14:56   #10
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

хотя всё таки не красиво смотрится что осталось 300 секунд. Как сделать, чтобы было допустим "Осталось 2 минуты и 34 секунды?" Чтобы он складывал 60 секунд в минуту

Цитата:
procedure TForm1.Timer1Timer(Sender: TObject);
var j: integer;
begin
i:=i-1;
Label1.Caption:='У вас осталось '+inttostr(i)+' секунд';
ProgressBar1.Position:=i;
if i=0 then
begin
Timer1.Enabled:=false;
j:=Form2.ShowModal;
end;
m1zantrop вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой метод работы с БД выбрать? serega96 Общие вопросы Delphi 2 23.01.2012 23:25
исследовать метод квадратных корней и метод Холецкого для решения СЛАУ Vит@x@ Помощь студентам 0 22.11.2011 10:47
Delphi+Firebird самый удобный-простой метод работы delphicoding Общие вопросы Delphi 2 08.07.2011 07:02
Turbo Pascal[програмыки : текстовая\метод симпсона\метод половинного деления qsccsq Помощь студентам 7 24.12.2010 05:23
Подскажите метод работы сервера и клиента 1с:Бухгалтерия kakawkin Софт 2 24.12.2009 15:59