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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2014, 22:54   #1
Zaraaa
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 83
По умолчанию trackbar

как сделать, так чтобы при установке ограничения времени,к примеру на 30 сек,через 30 сек вышло Showmessage ВРЕМЯ ВЫШЛО! потом и так далее для 1 мин,2 мин,5 мин для кнопки GO, помогите пожалуйста
Вложения
Тип файла: rar Новая папка.rar (171.8 Кб, 12 просмотров)
Zaraaa вне форума Ответить с цитированием
Старый 27.02.2014, 23:07   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Используйте Timer.
Streletz вне форума Ответить с цитированием
Старый 28.02.2014, 13:10   #3
Zaraaa
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 83
По умолчанию

там и есть таймер
Zaraaa вне форума Ответить с цитированием
Старый 28.02.2014, 14:35   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

чуть-чуть усложнил вашу задачу.
Если что - выкиньте лишнее

Project1source.rar
Project1_EXE.rar



если кратко, то вот PAS код модуля:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    trckbr1: TTrackBar;
    btCloseAll: TButton;
    Label1: TLabel;
    Label2: TLabel;
    tmr1: TTimer;
    btGO: TButton;
    btStop: TButton;
    Memo1: TMemo;
    lbRemainTime: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure trckbr1Change(Sender: TObject);
    procedure btGOClick(Sender: TObject);
    procedure StopTimerAndPrepareToNext;
    procedure tmr1Timer(Sender: TObject);
    procedure btCloseAllClick(Sender: TObject);
    procedure btStopClick(Sender: TObject);
  private
    TimerSeconds : integer;
    StartTime : TDateTime;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses DateUtils;
{$R *.dfm}

const
  buf : array[0..4] of String =  ('нет', '30 сек', '1 мин', '2 мин' , '5 мин');
  bufInterval : array[0..4] of Integer =  (0, 30, 60, 2*60, 5*60);

procedure TForm1.FormCreate(Sender: TObject);
begin
  StopTimerAndPrepareToNext;

  lbRemainTime.Caption := '';
  TimerSeconds := 0;
  StartTime := Now;
end;

procedure TForm1.StopTimerAndPrepareToNext;
begin
  tmr1.Enabled := false; // сразу выключили таймер
  Memo1.Enabled := false;  // запретили ввод в мемо
  trckbr1.Enabled := true; // включили трекбар
  btStop.Enabled := false;  // выключили кнопку СТОП
end;

procedure TForm1.trckbr1Change(Sender: TObject);
begin
  Label2.Caption := buf[trckbr1.Position];
end;

procedure TForm1.btGOClick(Sender: TObject);
begin
  trckbr1.Enabled := false; // выключили трекбар

  if trckbr1.Position>0 then begin {задали время выключения}
     TimerSeconds := bufInterval[trckbr1.Position];
     StartTime := Now;
     tmr1.Interval := 1000; // каждую секунду таймер будет срабатывать
                            // и делать нужные обработки
     tmr1.Enabled := true; // запустили таймер
  end;

  btStop.Enabled := true;  // включили кнопку остановки таймера
  Memo1.Enabled := true;  // открыли контрол, где можно что-то вводить
end;

procedure TForm1.btStopClick(Sender: TObject);
begin
  StopTimerAndPrepareToNext;
  lbRemainTime.Caption := '';
end;

procedure TForm1.tmr1Timer(Sender: TObject);
var Secs : integer;
begin
  Secs := SecondsBetween(Now, StartTime);
  if Secs>=TimerSeconds then begin
    // баста!! Время вышло!
    StopTimerAndPrepareToNext;

    lbRemainTime.Caption := 'время вышло';
    ShowMessage('Ваше время истекло!!');
    TimerSeconds := 0;
  end
  else
    lbRemainTime.Caption := 'Осталось '+IntToStr(TimerSeconds - Secs)+' сек.';
end;

procedure TForm1.btCloseAllClick(Sender: TObject);
begin
  Close;
end;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.03.2014, 19:45   #5
Zaraaa
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 83
По умолчанию

Serge_Bliznykov,Спасибо большое!
Zaraaa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TrackBar Claster Помощь студентам 0 20.10.2010 01:06
trackbar larry Win Api 3 28.07.2009 09:47
trackbar larry Win Api 4 25.07.2009 20:59
TrackBar loozer Компоненты Delphi 2 20.12.2008 22:50
TrackBar Михаил Юрьевич Общие вопросы Delphi 2 29.01.2008 00:43