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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 14:54   #1
Az@zel
 
Регистрация: 14.01.2010
Сообщений: 8
По умолчанию Визуализация таймера на делфи, нужна небольшая

Я далеко не программист...скажем так, любитель..
Иногда пишу программки по шаблонам...(тупо вставляю уже написанный кем-то код и всё..)

В данный момент столкнулся с небольшой проблемкой:
нужен таймер вот такого вида:

по нажатию на кнопку Start, должен включиться таймер, а в заголовке окна должно отсчитываться время...

Вот код:
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;



implementation

{$R *.dfm}
function SecToTime(Sec: Integer): TTime;
var
  H, M, S: INTEGER;
  HS, MS, SS: string;
begin
  S := Sec;
  M := Round(INT(S / 60));
  S := S - M * 60; //Seconds
  H := Round(INT(M / 60)); //Hours
  M := M - H * 60; //Minutes
  if H < 10 then
    HS := '0' + Inttostr(H)
  else
    HS := inttostr(H);
  if M < 10 then
    MS := '0' + Inttostr(M)
  else
    MS := inttostr(M);
  if S < 10 then
    SS := '0' + inttostr(S)
  else
    SS := inttostr(S);
  RESULT := StrToTime(HS + ':' + MS + ':' + SS);
end;



procedure TForm1.Button1Click(Sender: TObject);
var
  i: longint;
begin
  i := 0;
  k := 600;
  for i := 0 to 600 do
    Timer1.Enabled:=True;
    k:= k-1;
  if k=0 then
  exit;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  caption:='Осталось: '+ TimeToStr(SecToTime(k));
end;

end.
не работает....
подскажите в чём ошибка?


Еще буду очень благодарен, если подскажете как в этой програмке реализовать сохранение промежуточного результата таймера в ini-файл (чтобы если я выключу эту программу, то при следующем включении таймер продолжил бы свой отсчёт)

Последний раз редактировалось Az@zel; 14.01.2010 в 14:56.
Az@zel вне форума
Старый 14.01.2010, 15:03   #2
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Цитата:
не работает
Что именно ? - Ошибка, Ничего не происходит, что именно, и уточни сразу какая и где, если ошибка ?
Skype : UASm1Le.
Sm1Le вне форума
Старый 14.01.2010, 15:18   #3
Az@zel
 
Регистрация: 14.01.2010
Сообщений: 8
По умолчанию

Я дико извиняюсь.... Ступил ваще аж стыдно
Таймер заработал

Вот с таким кодом
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;



implementation

{$R *.dfm}
function SecToTime(Sec: Integer): TTime;
var
  H, M, S: INTEGER;
  HS, MS, SS: string;
begin
  S := Sec;
  M := Round(INT(S / 60));
  S := S - M * 60; //Seconds
  H := Round(INT(M / 60)); //Hours
  M := M - H * 60; //Minutes
  if H < 10 then
    HS := '0' + Inttostr(H)
  else
    HS := inttostr(H);
  if M < 10 then
    MS := '0' + Inttostr(M)
  else
    MS := inttostr(M);
  if S < 10 then
    SS := '0' + inttostr(S)
  else
    SS := inttostr(S);
  RESULT := StrToTime(HS + ':' + MS + ':' + SS);
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  caption:='Осталось: '+ TimeToStr(SecToTime(k-1));
  k:= k-1;
  if k=0 then
  Timer1.Enabled:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  k:= 15;
  Timer1.Enabled:=True;
end;

end.

Теперь надо как-то с записью промежуточного результата в ini-файл разобраться...
Вот тут от помощи не откажусь...
Az@zel вне форума
Старый 14.01.2010, 15:23   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

работа с ini файлами:
1 2 3 4... пользуемся поиском по форуму.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Небольшая задачка. Нужна помощь. Prayerok Помощь студентам 9 24.12.2009 00:27
Люди помощь нужна небольшая! sauron99 Общие вопросы C/C++ 0 18.06.2009 15:50
Визуализация как у АIMP на делфи romtkac Мультимедиа в Delphi 0 22.05.2009 21:33
Помогите создать в делфи что то типа таймера. Unstaller Помощь студентам 2 16.07.2008 08:30