Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Есть ли в Делфи визуальный шедулер(планировщик)?


Pcrepair ©   (11.07.17 21:19

Добрый день.
Есть необходимость разрешать выполнение программы по условию :
День недели(понед.....воскресение) => час суток(1...24)

в других программах видел планировщик в виде визуального объекта(типа календарь):
прямоугольник : вертикально - дни недели, горизонтально - часы

Вопрос :
в Делфи (ХЕ3) есть такой компонент? что то ничего не нашел, но может плохо искал
если в Делфи нет, возможно есть сторонний компонент, может кто то знает его наименование?


Rouse_ ©   (11.07.17 21:27[1]

Такой?
https://www.devexpress.com/Products/VCL/ExScheduler/


Pcrepair ©   (11.07.17 21:49[2]

не, не такой
вот есть в  уТоррент в разделе Преференсис шедуллер. вот такое нужно


Rouse_ ©   (11.07.17 23:29[3]

Картинку хоть покажи что хочешь?
Я линуксовым торрент-клиентом пользуюсь, понятия не имею о чем ты


Pcrepair ©   (11.07.17 23:44[4]

уже все. поставил радиобатоны


ВладОшин ©   (12.07.17 23:10[5]

>> День недели(понед.....воскресение) => час суток(1...24)
>> радиобатоны (?!)

А можно посмотреть как выглядит? )


Германн ©   (13.07.17 01:32[6]

Мне более интересно знать в какой версии Windows можно задавать задания стандартному планировщику на конкретные дни недели?


Pcrepair ©   (13.07.17 08:05[7]

ну не батоны а чекбоксы, какая разница

(*2017.07.12 detect work time zone*)
function IsTimeToWork:Boolean;
var
 DayWeek:Integer;
 Hour,Min,Sec,Milli:Word;
 Mon,Tue,Wed,Thu,Fri,Sat,Sun:Integer;
 h01,h02,h03,h04,h05,h06,h07,h08,h09,h10,h11,h12,h13,h14,h15,h16,
 h17,h18,h19,h20,h21,h22,h23:Integer;
 WhatDayWeek,WhatHour:Boolean;
begin
 DayWeek:=DayOfTheWeek(Date); (*number of current week's day*) //ShowMessage(IntToStr(DayWeek));
 DecodeTime(Now,Hour,Min,Sec,Milli);  (*data components*)      //ShowMessage(IntToStr(Hour));

 if Main.CheckBox6.Checked then Mon:=1 else Mon:=10;
 if Main.CheckBox7.Checked then Tue:=2 else Tue:=10;
 if Main.CheckBox8.Checked then Wed:=3 else Wed:=10;
 if Main.CheckBox9.Checked then Thu:=4 else Thu:=10;
 if Main.CheckBox10.Checked then Fri:=5 else Fri:=10;
 if Main.CheckBox11.Checked then Sat:=6 else Sat:=10;
 if Main.CheckBox12.Checked then Sun:=7 else Sun:=10;
 if (DayWeek = Mon) or (DayWeek = Tue) or (DayWeek = Wed) or (DayWeek = Thu)
 or (DayWeek = Fri) or (DayWeek = Sat) or (DayWeek = Sun) then
 WhatDayWeek:=True else WhatDayWeek:=False;  //ShowMessage(IntToStr(Integer(WhatDayWeek)));

 if Main.CheckBox13.Checked then h01:=1 else h01:=25;
 if Main.CheckBox14.Checked then h02:=2 else h01:=25;
 if Main.CheckBox15.Checked then h03:=3 else h01:=25;
 if Main.CheckBox16.Checked then h04:=4 else h01:=25;
 if Main.CheckBox17.Checked then h05:=5 else h01:=25;
 if Main.CheckBox18.Checked then h06:=6 else h01:=25;
 if Main.CheckBox19.Checked then h07:=7 else h01:=25;
 if Main.CheckBox20.Checked then h08:=8 else h01:=25;
 if Main.CheckBox21.Checked then h09:=9 else h01:=25;
 if Main.CheckBox22.Checked then h10:=10 else h01:=25;
 if Main.CheckBox23.Checked then h11:=11 else h01:=25;
 if Main.CheckBox24.Checked then h12:=12 else h01:=25;
 if Main.CheckBox25.Checked then h13:=13 else h01:=25;
 if Main.CheckBox26.Checked then h14:=14 else h01:=25;
 if Main.CheckBox27.Checked then h15:=15 else h01:=25;
 if Main.CheckBox28.Checked then h16:=16 else h01:=25;
 if Main.CheckBox29.Checked then h17:=17 else h01:=25;
 if Main.CheckBox30.Checked then h18:=18 else h01:=25;
 if Main.CheckBox31.Checked then h19:=19 else h01:=25;
 if Main.CheckBox32.Checked then h20:=20 else h01:=25;
 if Main.CheckBox33.Checked then h21:=21 else h01:=25;
 if Main.CheckBox34.Checked then h22:=22 else h01:=25;
 if Main.CheckBox35.Checked then h23:=23 else h01:=25;
 if (Hour = h01) or (Hour = h02) or (Hour = h03) or (Hour = h04) or (Hour = h05) or
 (Hour = h06) or (Hour = h07) or (Hour = h08) or (Hour = h09) or (Hour = h10) or
 (Hour = h11) or (Hour = h12) or (Hour = h13) or (Hour = h14) or (Hour = h15) or
 (Hour = h16) or (Hour = h17) or (Hour = h18) or (Hour = h19) or (Hour = h20) or
 (Hour = h21) or (Hour = h22) or (Hour = h23) then
 WhatHour:=True else WhatHour:=False;  //ShowMessage(IntToStr(Integer(WhatHour)));

 if WhatDayWeek and WhatHour then
 Result:=True else Result:=False;
end;


Leonid Troyanovsky ©   (13.07.17 10:31[8]


> Германн ©   (13.07.17 01:32) [6]

> Мне более интересно знать в какой версии Windows можно задавать
> задания стандартному планировщику на конкретные дни недели?

NT 3.51, f.e.

--
Regards, LVT.


Leonid Troyanovsky ©   (13.07.17 10:34[9]


> Pcrepair ©   (11.07.17 21:49) [2]

> вот есть в  уТоррент в разделе Преференсис шедуллер.

TDrawGrid.
Ну, или TStringGrid на худой конец.

--
Regards, LVT.


Leonid Troyanovsky ©   (13.07.17 10:39[10]


> Pcrepair ©   (13.07.17 08:05) [7]

> function IsTimeToWork:Boolean;

Оно д.б. методом формы, тогда и не будет нужды в  Main.

--
Regards, LVT.


Людоедка Эллочка   (13.07.17 12:20[11]

Мрак!


Rouse_ ©   (13.07.17 14:43[12]


> Pcrepair ©   (13.07.17 08:05) [7]
> ну не батоны а чекбоксы, какая разница

Это писал программист - это надо переписывать :) © ЮЗ


Pcrepair ©   (13.07.17 20:28[13]

ага мрак, но все работает как предначертано

гы, ну перепеши и выложи ТУТ, слабо?

какой еще метод формы? фсе процы и функии, как и было завещано паханами-основателями, в отдельном модуле


Inovet ©   (13.07.17 20:39[14]

> [13] Pcrepair ©   (13.07.17 20:28)
> какой еще метод формы?

Той формы, на которой эти чекбоксы. Это только для начала.


ВладОшин ©   (13.07.17 20:53[15]

public      { Public declarations }
   A: array[0..7, 0..24] of Boolean;

sg1: TStringGrid;

procedure TForm1.sg1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
 C,R: Integer;
begin
 sg1.MouseToCell(X, Y, C,R);
 A[R,C] := not(A[R,C]);
end;

и ловим что там в массиве, как закончено редактирование
а в TStringGrid fixed row/col подписать соответствующе


Германн ©   (14.07.17 01:39[16]


> Leonid Troyanovsky ©   (13.07.17 10:31) [8]
>
>

Хм. Действительно можно.


Leonid Troyanovsky ©   (14.07.17 10:10[17]


> ВладОшин ©   (13.07.17 20:53) [15]

Ну, там еще визуализация нужна, т.е. что-то вроде:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
const
 bs : array  [Boolean] of Longint =(0, DFCS_CHECKED);
begin
   with Sender as TStringGrid do
     if (ARow >= FixedRows) and (ACol >= FixedCols) then
       DrawFrameControl( Canvas.Handle,
                         Rect,
                         DFC_BUTTON,
                         DFCS_BUTTONCHECK or
                         bs[Bool(Objects[ACol, ARow])]);
end;

procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 with Sender as TStringGrid, MouseCoord(X, Y) do
   Objects[X,Y] := TObject(not Bool(Objects[X,Y]));
end;

procedure TForm1.StringGrid1KeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 with Sender as TStringGrid do
   if (key = vk_space) then
     Objects[Col, Row] := TObject(not Bool(Objects[Col, Row]));
end;

--
Regards, LVT.


ВладОшин ©   (14.07.17 10:33[18]


> Leonid Troyanovsky ©   (14.07.17 10:10) [17]

да можно просто "Х" в ячейку писать
ну или какую еще ту или иную букву )
оставим акт творчества автору )


Dimka Maslov ©   (15.07.17 15:34[19]


> Это писал программист


Автор сего чуда и не программист вообще-то. Давным давно он уже тут засветился на почве клинического кода и клинического нежелания делать нормально. Ветку надо прекращать инача опять будет как тут: http://www.delphimaster.net/?s=&pcount=50&forum=0&user=Pcrepair


Игорь Шевченко ©   (15.07.17 21:05[20]

Цитата из: http://www.delphimaster.net/view/2-1358698446

"На этой мажорной ноте мы заканчиваем дискуссию"


версия для печати
Обсуждение закрыто


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо