Выключение компьютера через заданый интервал вемени в Delphi
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Выключение компьютера через заданый интервал вемени в 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<>'' 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.Enabled:=True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Tag:=t;
Tag:=tag-1;
If tag<=0 then
begin
Label4.Caption:='Ghbdtn';// для испытания сделал потом поставлю выключение
Timer1.Enabled:=False;
end;
end;
end.
Обьясняю на пальцах пользователь вводит через скоко выключить комп и при скончании этого времени комп вырубается, но у меня при скончании этого времени ничего не происходит если пишу через 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
|
|
|
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 18:59:07.320000
|
|
|
Stil Free
Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666
|
Я её не писал чтоб проверять… Посмотри я там подправил
|
|
|
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 не стал искать специально хочу своей мозгой
|
|
|
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 19:02:30.566666
|
|
|
Stil Free
Сообщений: 598
Оценки: 0
Присоединился: 2008-11-02 16:07:14.136666
|
Да функция выключения у меня есть надо только там косяки исправить
|
|
|
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;
|
|
|
RE: Выключение компьютера через заданый интервал вемени в Delphi - 2009-01-06 20:27:56.683333
|
|
|
QunneD
Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
|
Если бы ты сказал чуть-чуть раньше то что нужно, то я бы помог. Но Sunzer первый :)
|
|
|
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<>'' 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; А помоему интервал поумолчанию стоит как одна сек. или я туплю? Не не канает он сразу Label4.Caption:='Ghbdtn'; токо нажимаешь делает….
|
|
|
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<>'' 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; А помоему интервал поумолчанию стоит как одна сек. или я туплю? Да 1000 мс = 1 сек.
|
|
|
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; и будет в сек., ну и т.д., получится все гораздо проще и должно работать
|
|
|
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" в коде лучше не употреблять
|
|
|
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<>'' 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*1000; Timer1.Enabled:=True; end; Таймер время в миллисекундах понимает, а ты ему секунды скармливаешь, вот оно и срабатывает сразу.
|
|
|
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<>'' 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*1000; Timer1.Enabled:=True; end; Таймер время в миллисекундах понимает, а ты ему секунды скармливаешь, вот оно и срабатывает сразу. спасибо сам допёр:))))))))))))))))))))))
|
|
|
|
|