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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2012, 16:41   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Выполнить действие в определённый день недели

Возможно, такая тема уже была. Как в определённый день недели (понедельник, вторник, среда или иной день) выполнить какое-либо дейтвие?
Есть 7 CheckBox:
  • Понедельник
  • Вторник
  • Среда
  • Четверг
  • Пятница
  • Суббота
  • Воскресенье
В таймере каждую секунду будет получаться текущая дата и как-то нужно узнать текущий день недели, и сравнить его с выделенным(ы) CheckBox.

Поспешил с созданием темы.
Решение: День недели

Последний раз редактировалось Shouldercannon; 05.08.2012 в 18:12.
Shouldercannon вне форума Ответить с цитированием
Старый 05.08.2012, 17:08   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Назначить checkbox'ам свойство Tag от 1 до 7 соответственно и
Код:
var
  i: integer;
begin
  for i :=0 to form1.componentcount -1 do
    if (form1.components[i] is TCheckBox) then
      if (form1.components[i].Tag=DayOfTheWeek(now))
        and ((form1.components[i] as TCheckBox).checked)
          then showmessage('work');
[UPD]
Ну если уже не нужно, то хотя бы как вариант
eoln вне форума Ответить с цитированием
Старый 05.08.2012, 18:12   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Все варианты сгодятся, чем больше, тем лучше
Shouldercannon вне форума Ответить с цитированием
Старый 05.08.2012, 19:00   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

eoln, если каждую секунду перебирать все компоненты на форме в поисках чекбокса(ов) - я думаю это напряжно будет
Shouldercannon, если я правильно понят вопрос - загляни сюда
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 05.08.2012, 19:23   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Не особо напряжно, а таймер можно увеличить, скажем, раз в 30-40 секунд, если точность не нужна. Код в качестве примера функции DayOfTheWeek приведён и ничуть не оптимизирован. Можно заранее чекбоксы найти, можно через if/case, можно и расписать.
Код:
dt := DayOfTheWeek(now);
case dt of
  1: if checkbox1.checked then...
  2: if checkbox2.checked then...
Вариантов куча и ещё чуть-чуть

P.S. Кажись, delphisources упал
eoln вне форума Ответить с цитированием
Старый 05.08.2012, 23:22   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Для этого есть планировщик задач (Task Scheduler). На указанное время создаётся задача, в командной строке - запуск нашей программы с параметром. Параметр указывает номер задачи, которую нужно выполнить. В указанное время запустится наша программа, увидит, что у неё задан параметр, выполнит задачу и завершиться. При необходимости, в параметрах задачи планировщика можно настроить повтор задачи ("запускать каждые N дней/часов").

Читать:
http://www.transl-gunsmoker.ru/2009/...g-post_14.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считая, что год невисокосный и его 1 января приходится на день недели wd1, определить: wd - день недели, на который приходится Галенька Помощь студентам 0 27.05.2012 14:33
день недели (adp) Gul'ka Microsoft Office Access 1 21.03.2012 22:21
День недели по дате Waickem Паскаль, Turbo Pascal, PascalABC.NET 2 14.10.2011 20:39
День недели Марк Охман Общие вопросы Delphi 7 27.09.2010 15:42
определить день недели по заданному числу (считать в месяце 30 дней и первый день месяца понедельник dan1991 Помощь студентам 1 01.03.2009 20:59