-
Добрый день. Есть необходимость разрешать выполнение программы по условию : День недели(понед.....воскресение) => час суток(1...24)
в других программах видел планировщик в виде визуального объекта(типа календарь): прямоугольник : вертикально - дни недели, горизонтально - часы
Вопрос : в Делфи (ХЕ3) есть такой компонент? что то ничего не нашел, но может плохо искал если в Делфи нет, возможно есть сторонний компонент, может кто то знает его наименование?
-
-
не, не такой вот есть в уТоррент в разделе Преференсис шедуллер. вот такое нужно
-
Картинку хоть покажи что хочешь? Я линуксовым торрент-клиентом пользуюсь, понятия не имею о чем ты
-
уже все. поставил радиобатоны
-
>> День недели(понед.....воскресение) => час суток(1...24) >> радиобатоны (?!)
А можно посмотреть как выглядит? )
-
Мне более интересно знать в какой версии Windows можно задавать задания стандартному планировщику на конкретные дни недели?
-
ну не батоны а чекбоксы, какая разница
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); DecodeTime(Now,Hour,Min,Sec,Milli);
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;
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;
if WhatDayWeek and WhatHour then
Result:=True else Result:=False;
end;
-
> Германн © (13.07.17 01:32) [6]
> Мне более интересно знать в какой версии Windows можно задавать > задания стандартному планировщику на конкретные дни недели?
NT 3.51, f.e.
-- Regards, LVT.
-
> Pcrepair © (11.07.17 21:49) [2]
> вот есть в уТоррент в разделе Преференсис шедуллер.
TDrawGrid. Ну, или TStringGrid на худой конец.
-- Regards, LVT.
-
> Pcrepair © (13.07.17 08:05) [7]
> function IsTimeToWork:Boolean;
Оно д.б. методом формы, тогда и не будет нужды в Main.
-- Regards, LVT.
-
Мрак!
-
> Pcrepair © (13.07.17 08:05) [7] > ну не батоны а чекбоксы, какая разница
Это писал программист - это надо переписывать :) © ЮЗ
-
ага мрак, но все работает как предначертано
гы, ну перепеши и выложи ТУТ, слабо?
какой еще метод формы? фсе процы и функии, как и было завещано паханами-основателями, в отдельном модуле
-
> [13] Pcrepair © (13.07.17 20:28) > какой еще метод формы?
Той формы, на которой эти чекбоксы. Это только для начала.
-
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 подписать соответствующе
-
> Leonid Troyanovsky © (13.07.17 10:31) [8] > >
Хм. Действительно можно.
-
> ВладОшин © (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.
-
> Leonid Troyanovsky © (14.07.17 10:10) [17]
да можно просто "Х" в ячейку писать ну или какую еще ту или иную букву ) оставим акт творчества автору )
-
-
|