Конференция "Начинающим" » Есть ли в Делфи визуальный шедулер(планировщик)?
 
  • Pcrepair © (11.07.17 21:19) [0]
    Добрый день.
    Есть необходимость разрешать выполнение программы по условию :
    День недели(понед.....воскресение) => час суток(1...24)

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

    Вопрос :
    в Делфи (ХЕ3) есть такой компонент? что то ничего не нашел, но может плохо искал
    если в Делфи нет, возможно есть сторонний компонент, может кто то знает его наименование?
  • Rouse_ © (11.07.17 21:27) [1]
  • 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

    "На этой мажорной ноте мы заканчиваем дискуссию"
 
Конференция "Начинающим" » Есть ли в Делфи визуальный шедулер(планировщик)?
Есть новые Нет новых   [118408   +16][b:0][p:0.029]