Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Выключение компьютера через заданый интервал вемени в Delphi

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Выключение компьютера через заданый интервал вемени в Delphi
Имя
Сообщение << Старые топики   Новые топики >>
Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 18:54:08.480000   
Stil Free

Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666
Хочу написать автоматическую выключалку компа где время задаётся пользователем вот напыжил кое что но не работает укажите на ошибки?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Timer1: TTimer; Button1: TButton; Label4: TLabel; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; h,m,s,t:integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin If Edit1.Text&lt;&gt;'' then h:=StrToInt(Edit1.Text) else h:=0; If Edit2.Text&lt;&gt;'' then m:=StrToInt(Edit2.Text) else m:=0; If Edit3.Text&lt;&gt;'' then s:=StrToInt(Edit3.Text) else s:=0; t:=(h*3600) + (m*60) + s; Timer1.Enabled:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Tag:=t; Tag:=tag-1; If tag&lt;=0 then begin Label4.Caption:='Ghbdtn';// для испытания сделал потом поставлю выключение Timer1.Enabled:=False; end; end; end. Обьясняю на пальцах пользователь вводит через скоко выключить комп и при скончании этого времени комп вырубается, но у меня при скончании этого времени ничего не происходит если пишу через 1 сек. то вырубает пишу больше нет. В чём косяк?
Post #: 1
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 18:56:34.843333   
QunneD

Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
Вроде ты говорил то что delphisources.ru лучший сайт.
Так что же ты такой умняга не посмотрел там? http://www.delphisources.ru/pages/faq/base/sched_poweroff.html
Post #: 2
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 18:59:07.320000   
Stil Free

Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666
Я её не писал чтоб проверять… Посмотри я там подправил
Post #: 3
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 19:00:20.320000   
Stil Free

Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666

quote:

ORIGINAL: QunneD

Вроде ты говорил то что delphisources.ru лучший сайт.
Так что же ты такой умняга не посмотрел там? http://www.delphisources.ru/pages/faq/base/sched_poweroff.html

не стал искать специально хочу своей мозгой
Post #: 4
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 19:02:30.566666   
Stil Free

Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666
Да функция выключения у меня есть надо только там косяки исправить
Post #: 5
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 19:32:43.333333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
procedure TForm1.Button1Click(Sender: TObject);
begin
If Edit1.Text<>'' then h:=StrToInt(Edit1.Text) else h:=0;
If Edit2.Text<>'' then m:=StrToInt(Edit2.Text) else m:=0;
If Edit3.Text<>'' then s:=StrToInt(Edit3.Text) else s:=0;
t:=(h*3600) + (m*60) + s;
Timer1.Interval:=t;
Timer1.Enabled:=True;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label4.Caption:='Ghbdtn';// для испытания сделал потом поставлю выключение
end;
Post #: 6
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 20:27:56.683333   
QunneD

Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
Если бы ты сказал чуть-чуть раньше то что нужно, то я бы помог. Но Sunzer первый :)
Post #: 7
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 21:31:57.726666   
Stil Free

Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666
quote:

ORIGINAL: Sunzer

procedure TForm1.Button1Click(Sender: TObject);
begin
If Edit1.Text&lt;&gt;'' then h:=StrToInt(Edit1.Text) else h:=0;
If Edit2.Text&lt;&gt;'' then m:=StrToInt(Edit2.Text) else m:=0;
If Edit3.Text&lt;&gt;'' then s:=StrToInt(Edit3.Text) else s:=0;
t:=(h*3600) + (m*60) + s;
Timer1.Interval:=t;
Timer1.Enabled:=True;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label4.Caption:='Ghbdtn';// для испытания сделал потом поставлю выключение
end;

А помоему интервал поумолчанию стоит как одна сек. или я туплю? Не не канает он сразу Label4.Caption:='Ghbdtn'; токо нажимаешь делает….
Post #: 8
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 21:39:54.400000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666

quote:

ORIGINAL: Stil Free

quote:

ORIGINAL: Sunzer

procedure TForm1.Button1Click(Sender: TObject);
begin
If Edit1.Text&lt;&gt;'' then h:=StrToInt(Edit1.Text) else h:=0;
If Edit2.Text&lt;&gt;'' then m:=StrToInt(Edit2.Text) else m:=0;
If Edit3.Text&lt;&gt;'' then s:=StrToInt(Edit3.Text) else s:=0;
t:=(h*3600) + (m*60) + s;
Timer1.Interval:=t;
Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label4.Caption:='Ghbdtn';// для испытания сделал потом поставлю выключение
end;

А помоему интервал поумолчанию стоит как одна сек. или я туплю?


Да 1000 мс = 1 сек.
Post #: 9
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 21:40:46.590000   
Alex1001222

Сообщений: 13
Оценки: 0
Присоединился: 2009-01-03 19:42:44.476666
А не проще сделать sleep(n); , где n : integer и задается пользователем. Ну раз sleep в мсек, значит n:=StrToInt(Edit1.Text)/1000; и будет в сек., ну и т.д., получится все гораздо проще и должно работать
Post #: 10
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 21:47:37.093333   
FLIER

Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000

quote:

ORIGINAL: Alex1001222

А не проще сделать sleep(n); , где n : integer и задается пользователем. Ну раз sleep в мсек, значит n:=StrToInt(Edit1.Text)/1000; и будет в сек., ну и т.д., получится все гораздо проще и должно работать


Вообще слово "sleep" в коде лучше не употреблять
Post #: 11
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 22:18:52.466666   
Login_hochu

Сообщений: 1471
Оценки: 0
Присоединился: 2007-07-15 14:19:23.423333
quote:

procedure TForm1.Button1Click(Sender: TObject);
begin
If Edit1.Text&lt;&gt;'' then h:=StrToInt(Edit1.Text) else h:=0;
If Edit2.Text&lt;&gt;'' then m:=StrToInt(Edit2.Text) else m:=0;
If Edit3.Text&lt;&gt;'' then s:=StrToInt(Edit3.Text) else s:=0;
t:=(h*3600) + (m*60) + s;
Timer1.Interval:=t*1000;
Timer1.Enabled:=True;
end;

Таймер время в миллисекундах понимает, а ты ему секунды скармливаешь, вот оно и срабатывает сразу.
Post #: 12
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 22:46:14.536666   
Stil Free

Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666

quote:

ORIGINAL: Login_hochu

quote:

procedure TForm1.Button1Click(Sender: TObject);
begin
If Edit1.Text&lt;&gt;'' then h:=StrToInt(Edit1.Text) else h:=0;
If Edit2.Text&lt;&gt;'' then m:=StrToInt(Edit2.Text) else m:=0;
If Edit3.Text&lt;&gt;'' then s:=StrToInt(Edit3.Text) else s:=0;
t:=(h*3600) + (m*60) + s;
Timer1.Interval:=t*1000;
Timer1.Enabled:=True;
end;

Таймер время в миллисекундах понимает, а ты ему секунды скармливаешь, вот оно и срабатывает сразу.

спасибо сам допёр:))))))))))))))))))))))
Post #: 13
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Выключение компьютера через заданый интервал вемени в Delphi







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.