1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Таймер обратного отсчета на Delphi 7

Тема в разделе "Помощь по всем вопросам.", создана пользователем Primo13, 14 июл 2014.

  1. TopicStarter Overlay
    Primo13

    Primo13

    Регистрация:
    23 апр 2014
    Сообщения:
    142
    Симпатии:
    18
    Кодеры, SOS! Есть локер, на нем есть отсчет времени на 6 часов. Нужно сделать так, чтобы в случае перезагрузки компа и запуске локера через автозагрузку, отсчет продолжался с того же места где был прерван. Символически отблагодарю монеткой...
     
    Метки:
  2. Born

    Born

    Регистрация:
    19 янв 2013
    Сообщения:
    257
    Симпатии:
    147
    Можно сделать проверку на выключения компа)
    If ребут ПК then
    Timer1.enabled:=false;
    Ну так-то не трудно сделать,думай)))
     
  3. TopicStarter Overlay
    Primo13

    Primo13

    Регистрация:
    23 апр 2014
    Сообщения:
    142
    Симпатии:
    18
    Да мне бы готовое решение... Просто время поджимает, а рыскать в поисках уже терпения не хватает :D
     
  4. ViP4iK

    ViP4iK

    Регистрация:
    13 май 2012
    Сообщения:
    203
    Симпатии:
    100
    Пиши, допустим, каждые 5 сек в реестр
     
  5. zILLy

    zILLy Гость

    При событии закрытия пиши в текстовик или реестр.
     
  6. ViP4iK

    ViP4iK

    Регистрация:
    13 май 2012
    Сообщения:
    203
    Симпатии:
    100
    Не очень верный вариант, при рестарте с кнопки данные не сохранятся
     
  7. EEjester

    EEjester hack_the_god

    Регистрация:
    25 окт 2012
    Сообщения:
    1.326
    Симпатии:
    941
    Так пиши File.Free после окончания редактирования, и всё.
    --- добавлено: 14 июл 2014 в 19:06 ---
    Код:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      if FileExists('C:\cfg.ini') then IstrUre := StrToInt(FileOpenText('C:\cfg.ini'));
      edit1.Text := IntToStr(IstrUre);
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    
      IstrUre := IstrUre - 1;
      edit1.Text := IntToStr(IstrUre);
    
      FileSaveText('C:\cfg.ini', IntToStr(IstrUre));
    
      if IstrUre = 0 then ShowMessage('Exit!');
    
    end;
    download [Delphi7]: Please login or register to view links
     
  8. Alex-ey

    Alex-ey

    Регистрация:
    26 май 2012
    Сообщения:
    513
    Симпатии:
    323
    Тут уже все готово и очень очень разжевано, должно получиться у тебя!
    Код:
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls,
     
    IniFiles;  // модуль для работы с файликами ini
     
    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Timer1: TTimer;
        procedure FormActivate(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
      inifile1:tinifile;
      t:integer;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormActivate(Sender: TObject);    // при активации формы(можно заменить на formcreate)
    begin
      if FileExists('C:\Windows\t.ini')=false then //если программа запустилась в 1 раз
      begin                                      // и не обнаружила файл, то создаем новый
      IniFile1:=TIniFile.Create('C:\Windows\t.ini'); // создаём
      t:=21600;  // в 6 часах 21600 секунд
      timer1.Enabled:=true;  // включаем отсчет
      end
      else
      begin  // если уже есть файл, то не 1 раз запускали
        IniFile1:=TIniFile.Create('C:\Windows\t.ini'); //откроем
        t:=IniFile1.ReadInteger('1','ВРЕМЯ',t);  // прочитаем
        timer1.Enabled:=true; // включим отсчет
      end;
    end;
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
    c,m,s,tt:integer;
    begin
    t:=t-1;
    c:=t div 3600;  // div это деление нацело
    tt:=t-3600*c;
    m:=tt div 60;
    s:=tt-60*m;
    label1.Caption:=inttostr(c)+':'+inttostr(m)+':'+inttostr(s);
    end;
     
    procedure TForm1.FormDestroy(Sender: TObject);
    begin //если программа закрылась
    IniFile1.WriteInteger('1','ВРЕМЯ',t);  //запишем время в файл
     
    end;
     
    end.
    Качай, использовал Delphi 7

    Please login or register to view links
     
    • Like Like x 2

Поделиться этой страницей

Загрузка...