Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Тормоза и таймер [D7, XP]


Страницы:   1 2 3 4

Alex_Ford ©   (2008-11-07 10:05:00) 

Привет!

Мастера у меня программа выполняет несколько задач. Все задачи выполняет таймер. Но от этого комп сильно тормозит. Используется всего один компонент таймер с интервалом в одну секунду. Что нужно сделать чтобы все работало без тормозов.

С уважением!


sniknik   (2008-11-07 11:04:00) [61]

> загружает список из файла.
?
> Посмотрите пожалуйста мой код, что не так я сделал?
как минимум ты не загружаешь список из файла...

> Излагай подробно задачу, которую должно решать твое приложение ..
задача - спрятаться от диспетчера, вернее не дать найти в нем себя мешая работе с ним.
-> postmessage(findwindow(nil,pchar('Диспетчер задач Windows'),),WM_CLOSE,0,0);


Сергей М.   (2008-11-07 10:52:00) [62]


> что не так я сделал?


Абсолютно все.
Излагай подробно задачу, которую должно решать твое приложение ..


Плохиш   (2008-11-07 10:46:00) [63]


> Alex_Ford   (07.11.08 10:42) [8]


> Посмотрите пожалуйста мой код, что не так я сделал?

Это не код, а маразм. Советую как 2й пункт в изучении прочитать справку по findwindow, на предмет возвращаемого значения...

1й пункт - прочитать букварь.


Правильный$Вася   (2008-11-07 10:44:00) [64]


> Программа при запуске загружает список из файла.Таймер в
> интервале в секунду проверяет эти значения

список чего?
в чем заключается проверка?


Alex_Ford   (2008-11-07 10:42:00) [65]

Значит, возможно проблема в том, что я не правильно расставляю скобки begin..end

Посмотрите пожалуйста мой код, что не так я сделал?


begin
 for i:=0 to checklistbox1.Items.Count-1 do
   if not checklistbox1.Checked[i] then exit else
   begin
     if checkListBox1.Checked[i] = true then
     st:= checklistbox1.Items.Strings[i];

     if findwindow(nil,pchar(st))<>0 then
        postmessage(findwindow(nil,pchar(st),),WM_CLOSE,0,0);

     if (form1.CheckBox4.Checked = true) and
        (findwindow(nil,pchar(tasklist))<>0) then
     begin
         postmessage(findwindow(nil,pchar('Диспетчер задач Windows'),),WM_CLOSE,0,0);
 end;

    begin
    if (form1.CheckBox5.Checked = true) and      
       (form1.CheckBox1.Checked = true)  then  
     begin
               
     form1.RadioButton1.Checked:= true end else

   if (form1.CheckBox5.Checked = false) and      
      (form1.CheckBox1.Checked = true) then
     begin
     for k:=0 to form1.CheckListBox1.Items.Count-1 do  
     form1.CheckListBox1.Checked[k]:=true;
     end;
   if (form1.CheckBox5.Checked = false) and
      (form1.MaskEdit1.Text = startgame.Caption)and
      (form1.CheckBox2.Checked = true) then
end;
end;
end;
end;


Anatoly Podgoretsky   (2008-11-07 10:42:00) [66]

Таймер не нагружает процессор.


sniknik   (2008-11-07 10:41:00) [67]

а смысл проверять? тем более раз в секунду (а сама проверка видимо отрабатывает за 3 :)). просто мониторить изменение файла, ждать событие от системы, и только тогда проверять.


Johnmen   (2008-11-07 10:31:00) [68]


> Alex_Ford   (07.11.08 10:28) [3]
> таймер нагружает проц

Это ты нагружаешь проц, а не таймер.


Плохиш   (2008-11-07 10:31:00) [69]


> Alex_Ford   (07.11.08 10:28) [3]

1. Таймер не нагружает систему
2. Систему нагружает код, который проверяет эти значения и если все ОК то вызывает процедуру

PS. Не надо валить свои проблемы на таймеры...


Alex_Ford   (2008-11-07 10:28:00) [70]

Программа при запуске загружает список из файла.
Таймер в интервале в секунду проверяет эти значения и если все ОК то вызывает процедуру. Список очень большой 1000-1500 записей.

Мастера, подскажите пожалуйста как с потоком тогда работать, если таймер нагружает проц?


clickmaker   (2008-11-07 10:18:00) [71]

> Все задачи выполняет таймер

за что ж ты его так?
почему не потоки?


Riply   (2008-11-07 10:09:00) [72]

> [0] Alex_Ford   (07.11.08 10:05)
> Все задачи выполняет таймер. Но от этого комп сильно тормозит. Используется всего один компонент таймер с интервалом в одну секунду.
> Что нужно сделать чтобы все работало без тормозов.

Поставить интервал в один час :)
А если серьезно, то от TTimer тормозить ничего не будет.
Что у тебя в нем вызывается ?


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо