Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 3

Создать окно (форму) с отображением текущего времени без использования таймера

06.07.2009, 17:59. Показов 2564. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тут вот наткнулся на такую задачку.
Создать окно (форму) с отображением текущего времени без использования
таймера. Для обновления времени использовать отдельный тред, сделать
кнопки "старт" и "стоп" по которым тред будет запускаться и останавливаться.
Не могу понять, что такое тред? и как это реализовать, если можете дайте подсказку...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2009, 17:59
Ответы с готовыми решениями:

Определение номера узла, текущего времени и таймера
Используя процедуры mpi_wtime, mpi_wtick, mpi_get_processor_name написать программу, в которой каждый запущенный процесс печатает имя...

Как создать форму авторизации без использования баз данных используя блокнот?
Как?

Как создать визуальный интерфейс (окно с элементами) на основе только кода c# - без использования XAML и WPF?
Интересуют примеры создания визуальных интерфейсов (окон с элементами) на основе только кода c# - без использования XAML и WPF. И...

5
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
06.07.2009, 21:15
тред = Thread = отдельный поток
без таймера... хз... наверное так
1. при входе в поток узнать текущее время с точностью до милисекеунд
2. заснуть на такое время, чтобы проснуться на целой секунде
3. в потоку крутим цикл пока !exit
4. спим 1000 мс
5. чего-нибудь делаем
6. действия могут занять какое-то время, поэтому корректируем время ожидания (см. п.4)
7. goto 3
1
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 3
07.07.2009, 14:39  [ТС]
Ну вообще-то становится немного понятнее, но нельзя было бы немного кода, как-то недопонимаю я. Может какую-то информацию про работу с потоками.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
07.07.2009, 15:27
Ну вообще-то становится немного понятнее, но нельзя было бы немного кода, как-то недопонимаю я. Может какую-то информацию про работу с потоками.
Это поделие (Борланд) я не юзаю, так что увы, ничем помочь не могу.
1
 Аватар для TGrey[WoLf]
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
07.07.2009, 15:34
Гугли
CreateThread - создание потока.
Для получения времени
SYSTEMTIME st;
GetLocalTime(&st);
1
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
07.07.2009, 18:51
В билдере(делфях), над потоками есть удобная обертка-TThread;
Просто наследуем его в дочерний класс и переписуем Execute в то, что нам нужно

Время получаем с помощью функции New() и класса TDateTime.
Собирая все в кучу выходит такая вот феня:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
class TMyThr:public TThread
{
public:
__fastcall TMyThr(bool CS):TThread(CS){}
virtual void __fastcall Execute()
        {
        TDateTime d;
        while(1)
                {
                d=Now();
                Form1->Label1->Caption=d.TimeString();
                Sleep(1000);
                }
        }
};
TMyThr*clock;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
clock=new TMyThr(false);
}
//---------------------------------------------------------------------------
 
//Стоп
void __fastcall TForm1::Button1Click(TObject *Sender)
{
clock->Suspend();
}
//---------------------------------------------------------------------------
//продолжить отсчет
void __fastcall TForm1::Button2Click(TObject *Sender)
{
clock->Resume();
}
//---------------------------------------------------------------------------
Добавлено через 3 минуты 57 секунд
А можно и без создания отдельного потока.
кликай сюда:
http://www.cyberguru.ru/delphi... avish.html

Добавлено через 6 минут 41 секунду
Только что сам попробовал то, что предложил во второй раз:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
Application->OnIdle=AppIdle;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AppIdle(System::TObject* Sender, bool &Done)
{
TDateTime d;
d=Now();
Label1->Caption=d.TimeString();
Done=false;
}
Программа загружает процик на 100% но это и понятно мы ведь не ожидаем сообщений, но зато без таймеров и тредов.

Добавлено через 1 минуту 54 секунды
Ой, я забыл добавить в AppIdle Sleep(10), теперь все в порядке.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.07.2009, 18:51
Помогаю со студенческими работами здесь

Часы без использования таймера (потоки)
Пытаюсь разобраться с потоками. Пробую сделать так, чтобы в метке на форме показывалось текущее время, разумеется без использования...

Генерация звука под DOS без использования таймера
Добрый день Друзья! Прошу помочь мне разобраться в технологии вычисления точного числа для проигрывания нот программой под DOSBOX. К...

Задание времени моделирования без отдельного сегмента-таймера
Возможно ли как-нибудь запустить программу без таймера и чтобы время было 480? Вот код: generate 20,5 queue g seize gc ...

Form Fade-In/Fade-Out (без использования таймера)
Form Fade-In/Fade-Out (без использования таймера) Sub FormFade(Form As Form, isFadeOut As Boolean) Try : Dim tmr As New Stopwatch...

Создать окно, которое нельзя закрыть.(Окно без крестика)
Как мне создать окно которое нельзя закрыть крестом.(Заблокировать крест, setEnabled(false) что то вроде). Создать окно в котором...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru