![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Напишите мне пожалуйста маленькую программку, которая будет показывать сколько времени включен компьютер. Можно даже без всяких кнопочек, только маленькое окошечко и время.
PS Чем больше будет там комментариев тем лучше. Зарание спасибо =] |
#2
|
|||
|
|||
![]() На форме таймер и StaticText. Свойства StaticText.Font:
Color = clBlue, Name = Arial Unicode MS, Size = 30. У таймера событие OnTimer, у формы - OnCreate. Счёт идёт от момента старта Windows. Код:
type TForm1 = class(TForm) StaticText1: TStaticText; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function WinTime: String; var a: Double; begin a:= GetTickCount / (1000 * 60 * 60 * 24); Result:= TimeToStr(TDateTime(a)); end; procedure TForm1.Timer1Timer(Sender: TObject); begin StaticText1.Caption:= WinTime; end; procedure TForm1.FormCreate(Sender: TObject); begin StaticText1.Caption:= WinTime; end; end. |
#3
|
|||
|
|||
![]() Спасибо большое, но почему-то заработало только после того как убрал
Код:
Timer1: TTimer; StaticText1: TStaticText; |
#4
|
|||
|
|||
![]() 1. Убирать пришлось, т.к. то, что Delphi сама при проектировании пишет, вручную не надо дублировать.
2. Что-то вопрос не понятен. Как не надо и как надо? |
#5
|
|||
|
|||
![]() Если можешь сделай просто, что бы при открытие программы сразу появлялось время сколько система работает, но и что бы оно не стояло а тикало, т.е. я включю программу, увижу ага система работает минуту, сверну её, поиграюсь допустим, разверну снова, а там время дальше идет и уже не минута а допустим час. Т.е. как в состоянии подключения к сети, когда его открываешь видишь, что сеть подключена и она подключена такое-то время, причем время идет дальше.
|
#6
|
|||
|
|||
![]() Цитата:
|
#7
|
|||
|
|||
![]() А это разве связано с программами?
Цитата:
|
#8
|
|||
|
|||
![]() Ну вот твоя первая программа, которая написана выше, просто показывает время сколько работает система, для того что бы еще раз узнать, нужно её перезапускать, всмысле программу, так вот можно ли сделать так, что бы или время в программе шло или кнопчку обновления, т.е. нажму кнопку время обновится без закрытия программы. Система это Windows.
|
#9
|
|||
|
|||
![]() Подозреваю, что не работает таймер. Проверь у компонента Timer1 на закладке Events, что к обработчику событий OnTimer подключена процедура Timer1Timer. На закладке Properties: Enabled = true, Interval = 1000. Это должно стоять по умолчанию, но могло сбиться во время лишних ручных операций.
|
#10
|
|||
|
|||
![]() Всё сделал. Всё работает. Большое спасибо!
Вот эта приколюшка, которую я хотел =] _http://www.rapidshare.ru/302882 |
#11
|
|||
|
|||
![]() Теперь понятно, что для этого и не нужна была функция GetTickCount, с обратным отсчётом справился бы и сам таймер. В начале запоминаешь время (Now) и прибавляешь к нему 30 сек (=TimeFinish). Если хочешь показывать каждые 0,1 сек, то у таймера ставишь Interval=100. В событии OnTimer берёшь разницу между TimeFinish и новым значением Now. Как только разница перестанет быть положительной - останавливаешь таймер.
Эх. Поправлюсь. На самом деле хрен редьки не слаще. Всё-равно вызывается функция. Меня сбило то, что я думал надо знать, сколько времени работает компьютер (Windows), а не запущенное приложение. Есть ещё, напр., функция timeGetTime. Чем мне нравится программирование - что можно задачу решить разными способами, лишь бы программа правильно работала, была понятна, удобна и не тормозила. Последний раз редактировалось AlexSku, 07.06.2007 в 10:07. |
#12
|
||||
|
||||
![]() Цитата:
--------------------------------------------- Программирование - не профессия, а стиль жизни |