| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Как сделать пока времени и остановку по кнопке |
| Автор: _OdinO4ka_ 26.5.2008, 12:27 | ||
Вообщем вопрос следующий, имеется код для вычисления фазы ДОЭ
у меня возникло два вопроса, мне нужно что бы программа останавливалась по кнопке, а не по циклу while, и как только программа остановлена она показывала бы сколько времени она работала. Заранее спасибо. |
| Автор: mrbrooks 26.5.2008, 13:06 |
| Ух жуть то какая. Без потока тормозит небось. Используй компонент TTimer и тип данных TDateTime |
| Автор: _OdinO4ka_ 26.5.2008, 13:28 |
| а можешь поподробнее описать, а то программист из меня никудышный ) |
| Автор: mrbrooks 26.5.2008, 13:54 |
| Тот код который у тебя в цикле можешь записать в цикл таймера в событие OnTimer. Свойство Enabled булево типа 0 - стоп 1 - запуск (false, true). Interval задает время цикла При нажатии кнопки "старт" первой переменной типа TDateTime присваиваешь время начала цикла, "стоп" соответственно конец и + время второй переменной типа TDateTime. Разница переменных TDateTime - есть то время сколько выполнялся цикл. Как я понимаю это тебе и нужно Это в общих словах. Лучше конечно было бы использовать потоки и собственно время вычилсять в зависимости от времени жизни потока - но судя по всему пока тебе стоит воздержаться от этого |
| Автор: SerK 26.5.2008, 13:57 | ||||||||
Объявить две переменные
При включении Button1Click-
При включении Button2Click-
В процедуре TimerTimer (дважды щелкнуть на значке Timer):
|
| Автор: mrbrooks 26.5.2008, 13:59 |
| Serk нам надо работать в паре |
| Автор: SerK 26.5.2008, 14:12 |
| mrbrooks Вот уж и вправду, мысли материальны, почти у нас совпали. |
| Автор: _OdinO4ka_ 26.5.2008, 14:17 | ||
Изменил код
выдает следующие ошибки [C++ Error] Unit1.cpp(26): E2206 Illegal character 'Ò' (0xd2) [C++ Error] Unit1.cpp(26): E2040 Declaration terminated incorrectly [C++ Error] Unit1.cpp(26): E2206 Illegal character 'Ò' (0xd2) [C++ Error] Unit1.cpp(50): E2206 Illegal character 'Ò' (0xd2) [C++ Error] Unit1.cpp(50): E2277 Lvalue required [C++ Error] Unit1.cpp(260): E2451 Undefined symbol 'StringS' [C++ Error] Unit1.cpp(261): E2206 Illegal character 'Ò' (0xd2) [C++ Error] Unit1.cpp(261): E2277 Lvalue required [C++ Error] Unit1.cpp(262): E2451 Undefined symbol 'S' [C++ Error] Unit1.cpp(262): E2451 Undefined symbol 'T2' [C++ Error] Unit1.cpp(262): E2451 Undefined symbol 'T1' Добавлено через 1 минуту и 56 секунд если я правильно понял мы со вкладки system кидаем timer, так? |
| Автор: mrbrooks 26.5.2008, 16:13 |
| 1. String S а не StringS - описался человек 2. У тебя что - то с символами - Т - не русское случем? |
| Автор: _OdinO4ka_ 26.5.2008, 16:28 | ||
первую ошибку я уже пофиксил забыл описать, теперь подправил немного возникает вот что (я постоянно скидывать код тогда буду для ясности)
[Linker Error] Unresolved external '__fastcall TForm1::Edit5Change(System::TObject *)' referenced from D:\FLASH\ÊÎÏÈß ÑÒÀÐÎÃÎ ÍÈÐÀ\ÍÈÐ\UNIT1.OBJ а вот собственно ошибка какая |
| Автор: mrbrooks 26.5.2008, 19:32 |
| Почисти в хидаре к первой форме событие __fastcall TForm1::Edit5Change(System::TObject *) - я полагаю ты в ручную удалил его. Добавлено через 2 минуты и 6 секунд Слушай а у тебя в пути что кириллица присутствует? |
| Автор: _OdinO4ka_ 27.5.2008, 14:31 |
| ну да там что то типа Диплом бакалавра написано, проверь свои личные сообщения |