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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2012, 21:27   #1
diasouls
 
Регистрация: 16.07.2012
Сообщений: 4
Печаль Осталось дней. Отсчет дней в программе

Доброго времени суток форумчане.
Потребовалось мне, для общего развития в программировании, в программе сделать отсчет дней до окончания действия пароля.

Пользователь вводит количество дней активности пароля и эти данные заносятся в файл базы. А теперь в чем суть: как организовать это дело так, чтобы все работало ?

Идея: при вводе количества дней активности пароля в базу заносить и параметр отсчета равный нулю. И при каждом запуске программы считывать дату и сверять: если дата изменилась на 1, то lastday=lastday +1, если на 7 дней, то соответственно +7 и так далее. Но что делать если пользователь не пользовался программой месяц или год? Или же переводить дату занесения пароля в базу в дни и при включении программы сверять в днях дату занесения и текущую? Но опять вопрос года?

Помогите пожалуйста. Мои варианты иссякли.

П.с. Я не профессионал и не претендую. Просьба отвечать без угрызений и трололошества.
diasouls вне форума Ответить с цитированием
Старый 30.08.2012, 22:01   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

А если он в базе поправит данные?
eval вне форума Ответить с цитированием
Старый 30.08.2012, 22:43   #3
diasouls
 
Регистрация: 16.07.2012
Сообщений: 4
По умолчанию

Ну поправить он может только из самого приложения, т.к. файл базы зашифрован.

Сам не могу решить, поэтому и пришел спросить совета.
diasouls вне форума Ответить с цитированием
Старый 31.08.2012, 02:08   #4
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Если время жизни пароля в днях, то надо хранить дату последнего изменения пароля и время жизни, при запуске с помощью DaysBetween проверяйте.
Если может не запускать годами, то тогда логичнее время жизни пароля считать не от дней, а от количества раз его использования (авторизации), то бишь пароль действует на 100 авторизации допустим. Тогда надо хранить счетчик авторизации и макс. количество авторизаций с данным паролем. Ну и не забывайте напоминать пользователю, в любом случае, при приближении конца жизни пароля о необходимости его замены.
astecenko вне форума Ответить с цитированием
Старый 01.09.2012, 00:13   #5
diasouls
 
Регистрация: 16.07.2012
Сообщений: 4
По умолчанию

Последовал вашему совету с количеством "активаций", так как он выглядит логичнее в данной задаче.

Далее, если кому интересно:
1. При создании записи в файле базы создается запись количества возможного использования данного пароля CountActivation:='0'; и соответственно запись CountValidity:=xx;, где XX - это количество возможных операций пользователя с паролем.
----------------------------------------------------------
2. Существует кнопка "Скопировать пароль", которая увеличивает количество возможного использования пароля на 1.
----------------------------------------------------------
3.На форме стоит процедура отрисовки таблицы: onDrawCell, висит чудо, красящее "просроченные пароли" в чудный розоватый цвет))
Цитата:
begin
with StringGrid1 do//Ссылаемся на этот "чудо" элемент
begin
try
if (StrToInt(StringGrid1.Cells[3,ARow])<=Ca) and (Arow>0) and (ACol=3) then//Условия покраски)
Begin
Canvas.Brush.Color:=clPaleRed;//Устанавливаем цвет фона
Canvas.Font.Color:=clWhite;//Устанавливаем цвет текста
N20.Enabled:=False;//Отключаем кнопку "Скопировать пароль"
End;
except
end;
Canvas.FillRect(Rect);//Перерисовываем таблицу.
Canvas.TextOut(Rect.Left+2, Rect.Top+4, Cells[ACol, ARow]);//Выравниваем сбившийся текст =="
end;
end;
4. Если появляется "просроченный" пароль, то появляется уведомление о таком "несчастье" и пользователь может увидеть их количество, а так же какие это "записи"(в моем случае сайты/программы)...
За 14 дней до окончания "Срока годности" пароля появляется уведомление как и при "просроченном" пароле.


P.s. Вдруг кому-нибудь что-то взбредет как у меня)

Последний раз редактировалось diasouls; 01.09.2012 в 00:16. Причина: Запятая нужна была
diasouls вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать прогу чтобы показывать сколько дней осталось до... Bigtyoma Общие вопросы Delphi 20 23.12.2016 06:23
подсчет дней Tadjik Microsoft Office Access 3 06.09.2010 14:24
расчитать сколько осталось дней до дня рождения mars56 Microsoft Office Excel 4 10.12.2009 10:01
...дней в месяце Altera Общие вопросы Delphi 1 18.11.2008 06:44
Как сделать отсчет дней от заданной даты в Excel? ru16 Microsoft Office Excel 1 22.11.2007 11:13