Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
1

Время затраченное на выполнения события(ий)

18.12.2012, 11:26. Показов 3714. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть ли функция для подсчета времени, затраченного на выполнение действй в 1 или нескольких процедурах?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2012, 11:26
Ответы с готовыми решениями:

Изменение ListView в форме во время выполнения события
Доброго времени суток! Пишу приложение, которое выводит в список (ListView) данные при нажатии...

Обработка события контрола, добавляемого во время выполнения
В общем, имеется на форме TableLayoutPanel, в которую по нажатию кнопки добавляется PictureBox. На...

Возможно ли отлавливать события контролов, созданных во время выполнения программы?
Возможно ли отлавливать события контролов, созданных во время выполнения программы? Вот такое не...

Определить время, затраченное на запрос
Есть некая таблица с данными о работниках. SLQ запрос выводит данные об определенных работниках....

22
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
18.12.2012, 11:31 2
GetTickCount
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
18.12.2012, 11:39  [ТС] 3
а внутри что написать?

Добавлено через 6 минут
Скажем, мне нужно посчитать сколько времени длится событие в баттоне1, веббраузере1 и баттоне 2
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
18.12.2012, 11:40 4
Внутри чего?
Запоминаешь значение GetTickCount в начале процедуры и в конце. Разница и будет - время, затраченное на ее выполнение.
1
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
18.12.2012, 11:52  [ТС] 5
все понял,спасибо

Добавлено через 8 минут
Блин, теперь не выполняются действия в этой процедуре. ВОт код:
Delphi
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
procedure Tform40.EffectButton2Click(Sender: TObject);
 var i:integer;
tim,tim1,tim2:integer;
begin
 
 tim:=GetTickCount;
  load:=0;
  nick:=edit1.Text;
  fg:=1;
  label1.Caption:='';
  memo1.Clear;
  memo2.Clear;
  memo3.Clear;
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TEdit)and((Components[i] as TEdit).tag = 0) then
  (Components[i] as TEdit).Clear;
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TtransEdit) then
  (Components[i] as TtransEdit).Clear;
  try
    if combobox1.ItemIndex=0 then
    idhttp1.head('http://worldoftanks.ru');
    if combobox1.ItemIndex=1 then
    idhttp1.head('http://worldoftanks.eu');
    if combobox1.ItemIndex=2 then
    idhttp1.head('http://worldoftanks.com');
    if combobox1.ItemIndex=3 then
    idhttp1.head('http://worldoftanks-sea.com');
  button3.click;
  effectbutton3.Enabled:=true;
  timer3.enabled:=true;
  except
  showmessage('Íåò ñîåäèíåíèÿ ñ Èíòåðíåòîì èëè íåäîñòóïåí ñåðâåð WoT');
  end;
 
 
      tim1:=GetTickCount;
    tim2:=tim1-tim;
    edit1.text:=inttostr(tim2);
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
18.12.2012, 11:59 6
То есть, до добавления строк с GetTickCount всё работало, а после - перестало? Значит, так "хорошо" работало да этого. Скажи спасибо, что обнаружил эту проблему сейчас.

НЕ должно добавление тех строк, что ты добавил, влиять на работоспособность кода. Никак.
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
18.12.2012, 12:01 7
tim,tim1,tim2: Longint;
0
17 / 17 / 4
Регистрация: 20.08.2010
Сообщений: 128
18.12.2012, 12:02 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var Start, Finish, TimeLen : Cardinal; TimeL : Double;
 
 
 
 Start := GetTickCount; // Засекам время
 
[B]Процедура..[/B]
 
 Finish := GetTickCount; // Засекаем окончание
 TimeLen := Finish - Start; // в миллисекундах
 TimeL := TimeLen / 1000; // в секундах и тысячных секунд
 TimeLen := TimeLen div 1000; // в секундах
 ShowMessage( 'Время:  ms:' + IntToStr(TimeLen) + '  ss:' + FloatToStr(TimeL) + '  s:' + IntToStr(TimeLen) );
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
18.12.2012, 12:16  [ТС] 9
Попробовал твоим кодом, вот что сделал
Delphi
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
procedure Tform41.EffectButton2Click(Sender: TObject);
var i:integer;
begin
Start := GetTickCount; // Засекам время
  load:=0;
  nick:=edit1.Text;
  fg:=1;
  label1.Caption:='';
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TEdit)and((Components[i] as TEdit).tag = 0) then
  (Components[i] as TEdit).Clear;
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TtransEdit) then
  (Components[i] as TtransEdit).Clear;
  try
    if combobox1.ItemIndex=0 then
    idhttp1.head('http://worldoftanks.ru');
    if combobox1.ItemIndex=1 then
    idhttp1.head('http://worldoftanks.eu');
    if combobox1.ItemIndex=2 then
    idhttp1.head('http://worldoftanks.com');
    if combobox1.ItemIndex=3 then
    idhttp1.head('http://worldoftanks-sea.com');
  button3.click;
  effectbutton3.Enabled:=true;
  timer3.enabled:=true;
  except
  showmessage('No connection to the Internet or the server is not available WoT');
  end;
  Finish := GetTickCount; // Засекаем окончание
 TimeLen := Finish - Start; // в миллисекундах
 TimeL := TimeLen / 1000; // в секундах и тысячных секунд
 TimeLen := TimeLen div 1000; // в секундах
 ShowMessage( 'Время:  ms:' + IntToStr(TimeLen) + '  ss:' + FloatToStr(TimeL) + '  s:' + IntToStr(TimeLen) );
end;
Переменные объявил как глобальные, и ничего не показывает, не резуультат действий ни showmessage
0
17 / 17 / 4
Регистрация: 20.08.2010
Сообщений: 128
18.12.2012, 12:55 10
ShowMessage Должен быть в любом случае.. Значит у тебя что то не завершается..
Ты вообще пробуй с начало на чем то попроще.. и что Реально работает)..

Типа..

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
 var Start, Finish, TimeLen : Cardinal; TimeL : Double;
 begin
 
 
 Start := GetTickCount; // Засекам время
 
 Sleep(3000); // То что высчитываем...
 
 Finish := GetTickCount; // Засекаем окончание
 TimeLen := Finish - Start; // в миллисекундах
 TimeL := TimeLen / 1000; // в секундах и тысячных секунд
 TimeLen := TimeLen div 1000; // в секундах
 ShowMessage( 'Время:  ms:' + IntToStr(TimeLen) + '  ss:' + FloatToStr(TimeL) + '  s:' + IntToStr(TimeLen) )
end;
Работает? Работает...

Смотри лучше свою процедуру.. что в ней не так..
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
19.12.2012, 10:19  [ТС] 11
в ней все работало и счиатло могу проект скинуть и сами попробуйте сделать
Открывать форму 40, для пробы использовать ник: xako
http://narod.ru/disk/646044660... p.rar.html
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
21.12.2012, 09:46  [ТС] 12
Помогите, пожалуйста, а то у меня из-за этой проблемы весь проект остановился(
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.12.2012, 10:24 13
Ты в одном месте говоришь про Форму 41
Цитата Сообщение от XaKO Посмотреть сообщение
Попробовал твоим кодом, вот что сделал
Delphi
1
procedure Tform41.EffectButton2Click(Sender: TObject);
Переменные объявил как глобальные, и ничего не показывает, не резуультат действий ни showmessage
, а в другом - про 40
Цитата Сообщение от XaKO Посмотреть сообщение
в ней все работало и счиатло могу проект скинуть и сами попробуйте сделать
Открывать форму 40, для пробы использовать ник: xako
Может в этом проблема?
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.12.2012, 10:50 14
Ну да, все работает.
Delphi
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
procedure Tform40.EffectButton2Click(Sender: TObject);
 var i:integer;
   Start, Finish, TimeLen : Cardinal; TimeL : Double;
begin
  Start := GetTickCount; // Çàñåêàì âðåìÿ
  load:=0;
  nick:=edit1.Text;
  fg:=1;
  label1.Caption:='';
  memo1.Clear;
  memo2.Clear;
  memo3.Clear;
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TEdit)and((Components[i] as TEdit).tag = 0) then
  (Components[i] as TEdit).Clear;
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TtransEdit) then
  (Components[i] as TtransEdit).Clear;
  try
    if combobox1.ItemIndex=0 then
    idhttp1.head('http://worldoftanks.ru');
    if combobox1.ItemIndex=1 then
    idhttp1.head('http://worldoftanks.eu');
    if combobox1.ItemIndex=2 then
    idhttp1.head('http://worldoftanks.com');
    if combobox1.ItemIndex=3 then
    idhttp1.head('http://worldoftanks-sea.com');
  button3.click;
  effectbutton3.Enabled:=true;
  timer3.enabled:=true;
  except
  showmessage('Íåò ñîåäèíåíèÿ ñ Èíòåðíåòîì èëè íåäîñòóïåí ñåðâåð WoT');
  end;
  Finish := GetTickCount; // Çàñåêàåì îêîí÷àíèå
 TimeLen := Finish - Start; // â ìèëëèñåêóíäàõ
 TimeL := TimeLen / 1000; // â ñåêóíäàõ è òûñÿ÷íûõ ñåêóíä
 TimeLen := TimeLen div 1000; // â ñåêóíäàõ
 ShowMessage( 'Âðåìÿ:  ss:' + FloatToStr(TimeL) + '  s:' + IntToStr(TimeLen) )
end;
Похоже кто-то заблудился в собственном проекте...
Миниатюры
Время затраченное на выполнения события(ий)  
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
21.12.2012, 12:09  [ТС] 15
В тот раз я не заблуждался, просто пробовал засечь время для той формы, она с тем же кодом, только оформление на английском) Фиг Знает Но Сейчас Все заработало
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
21.12.2012, 12:12  [ТС] 16
Объясни как такое могла получится???
Миниатюры
Время затраченное на выполнения события(ий)  
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.12.2012, 12:39 17
Цитата Сообщение от XaKO Посмотреть сообщение
Объясни как такое могла получится???
А код какой сейчас?
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
21.12.2012, 12:45  [ТС] 18
Delphi
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
procedure Tform40.EffectButton2Click(Sender: TObject);
 var i:integer;
   Start, Finish, TimeLen : Cardinal; TimeL : Double;
   begin
  load:=0;
  nick:=edit1.Text;
  fg:=1;
  label1.Caption:='';
  memo1.Clear;
  memo2.Clear;
  memo3.Clear;
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TEdit)and((Components[i] as TEdit).tag = 0) then
  (Components[i] as TEdit).Clear;
  for i:=0 to ComponentCount - 1 do
  if (Components[i] is TtransEdit) then
  (Components[i] as TtransEdit).Clear;
  try
    if combobox1.ItemIndex=0 then
    idhttp1.head('http://worldoftanks.ru');
    if combobox1.ItemIndex=1 then
    idhttp1.head('http://worldoftanks.eu');
    if combobox1.ItemIndex=2 then
    idhttp1.head('http://worldoftanks.com');
    if combobox1.ItemIndex=3 then
    idhttp1.head('http://worldoftanks-sea.com');
  button3.click;
  effectbutton3.Enabled:=true;
  timer3.enabled:=true;
  except
  showmessage('Íåò ñîåäèíåíèÿ ñ Èíòåðíåòîì èëè íåäîñòóïåí ñåðâåð WoT');
  end;
    Finish := GetTickCount; // Çàñåêàåì îêîí÷àíèå
 TimeLen := Finish - Start; // â ìèëëèñåêóíäàõ
 TimeL := TimeLen / 1000; // â ñåêóíäàõ è òûñÿ÷íûõ ñåêóíä
 TimeLen := TimeLen div 1000; // â ñåêóíäàõ
 ShowMessage( 'Âðåìÿ:  ss:' + FloatToStr(TimeLen))
end;
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.12.2012, 12:56 19
Delphi
1
2
3
4
 Finish := GetTickCount; // Засекаем окончание
 TimeLen := Finish - Start; // в миллисекундах
 TimeL := TimeLen / 1000; // в секундах и тысячных секунд
 ShowMessage( 'Время:  ss:' + FloatToStr(TimeL));
0
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
21.12.2012, 13:05  [ТС] 20
Все работает
0
21.12.2012, 13:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2012, 13:05
Помогаю со студенческими работами здесь

Время затраченное на нажатие клавиши
Нужно определить какое время была нажата определённая клавиша( т.е затраченное время на нажатие...

Как посчитать время, затраченное на выполнение
Всем привет. Есть внешняя библиотека к которой обращаемся. Результат выводим в консоль. Как...

Количество перестановок и время затраченное на сортировку
Количество перестановок и время затраченное на сортировку.

Время затраченное на выполнение любой операции
Доброго времени суток. Подскажите пожалуйста как мне получить время затраченное на вычисление,...

Во время выполнения события Drag and Drop TeeView должен селектировать узлы через которые двигается курсор мышки
Всем Дарова. Вобщем идея такова: во время выполнения события Drag and Drop TeeView должен...

Рекурсивная функция - сократить время, затраченное на вычисления
Условия задачи: Пусть x1=x2=x3=1; xi=xi-1+xi-3, i=4,5... Код функции: int xn(int n) { ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru