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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2009, 00:23   #1
ScreN
Пользователь
 
Аватар для ScreN
 
Регистрация: 27.12.2008
Сообщений: 88
По умолчанию Автосохранения по таймеру

Здравствуйте.
Подскажите пожалуйста. Как реализовать Автосохранение по таймеру?

Есть код

Код:
/// Таймер ///
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
If ConfigForm.AutoSaveCheck1.Checked Then Begin
If ConfigForm.TimeEditSave.Value=1 Then Form1.Timer1.Interval:=10000;
Form1.SaveFileClick(Sender);
End;
End;
В этом коде проверяется
AutoSaveCheck ( Включена ли функция Автосохранения )
TimeEditSave ( Выбраное время сохранения (1) то есть 1 минута )
И если все так тогда
Form1.Timer1.Interval:=10000; - Выставить таймер на 1 минуту.
И по истичении 1 минуты
Form1.SaveFileClick(Sender); - Запустить процедуру сохранения файла.

Но!
Не работает.. у меня через каждую секунду вываливается окно с сохранением файла...
Подскажите как правильно нужно все это сделать?

У меня предлагается минуты сохранения с 1 минут до 15 минут.
Заранее спасибо!
ScreN вне форума Ответить с цитированием
Старый 09.01.2009, 00:32   #2
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Begin End в помощь ....
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 09.01.2009, 00:44   #3
ScreN
Пользователь
 
Аватар для ScreN
 
Регистрация: 27.12.2008
Сообщений: 88
По умолчанию

Ну а так правильно вообще??
ScreN вне форума Ответить с цитированием
Старый 09.01.2009, 00:48   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
у меня через каждую секунду вываливается окно с сохранением файла
Так и должно быть.
Это ж надо додуматься - в событии таймера устанавливать его интервал...
Нет слов!
Если уж приспичило менять интервал, то нужно таймер остановить перед этим, и запустить снова после смены интервала...
mihali4 вне форума Ответить с цитированием
Старый 09.01.2009, 00:50   #5
ScreN
Пользователь
 
Аватар для ScreN
 
Регистрация: 27.12.2008
Сообщений: 88
По умолчанию

Блин ну а как тогда? Скажите. Что сделаешь если я НУБ. Я с этим первый раз сталкиваюсь
ScreN вне форума Ответить с цитированием
Старый 09.01.2009, 01:01   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, а посмотреть в хэлпе, что такое таймер и с чем его едят?
Это очень трудно?
Код:
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
Timer1.Enabled:=False;
If ConfigForm.AutoSaveCheck1.Checked Then Begin
If ConfigForm.TimeEditSave.Value=1 Then Form1.Timer1.Interval:=10000;
Form1.SaveFileClick(Sender);
Timer1.Enabled:=True;
End;
End;
mihali4 вне форума Ответить с цитированием
Старый 09.01.2009, 01:04   #7
ScreN
Пользователь
 
Аватар для ScreN
 
Регистрация: 27.12.2008
Сообщений: 88
По умолчанию

В хелпе не совсем понятно.. там же по английски.
Вы мне скажите я вообще правильно пытаюсь реализовать Автосохранение?
ScreN вне форума Ответить с цитированием
Старый 09.01.2009, 01:26   #8
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

Ты ж только автосохранение применяй если файл сохранен, а то будет диалоговое окно выскакивать.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 09.01.2009, 04:27   #9
ScreN
Пользователь
 
Аватар для ScreN
 
Регистрация: 27.12.2008
Сообщений: 88
По умолчанию

Код:
/// Таймер ///
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
Label1.Caption := TimeToStr(Now);
    If ConfigForm.AutoSaveCheck1.Checked Then SaveAs(Sender);
End;


procedure TForm1.FormActivate(Sender: TObject);
Begin
    If ConfigForm.TimeEditSave.Value=1 Then Form1.Timer1.Interval:=60000;
    If ConfigForm.TimeEditSave.Value=2 Then Form1.Timer1.Interval:=120000;
    If ConfigForm.TimeEditSave.Value=3 Then Form1.Timer1.Interval:=180000;
    If ConfigForm.TimeEditSave.Value=4 Then Form1.Timer1.Interval:=240000;
    Label2.Caption:=IntToStr(ConfigForm.TimeEditSave.Value);
  End;
Ниче не могу понять.. Не работает вот так. Что не так то я делаю ?
ScreN вне форума Ответить с цитированием
Старый 09.01.2009, 04:53   #10
ScreN
Пользователь
 
Аватар для ScreN
 
Регистрация: 27.12.2008
Сообщений: 88
По умолчанию

Для проверочки поставил Label2.Caption:=IntToStr(ConfigForm .TimeEditSave.Value);
... Чтобы проверит передается ли значение из TimeEditSave.Value в Label..
И вот что обнаружил.. оно не передается в Label.
Ну в общем как бы передается.. но не так как нужно..
Допустим значение 1.. сохраняем его и выходим из программы.. заходим и значение стоит 1 и там и там..
Но если поменять значение на 2 то в Label оно не меняется пока не перезапустишь программу..

Это нормально? На таймер это случайно не повлияет?
ScreN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual Basic, рисование по таймеру Arion Помощь студентам 5 21.05.2008 12:42
Нечто подобное таймеру Артэс Общие вопросы C/C++ 8 11.02.2008 19:19
Вызов функции по таймеру Lexicss Общие вопросы Delphi 4 30.05.2007 22:47