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

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

Вопрос о таймерах !


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

Offceman ©   (2006-02-07 12:54:00) 

Как оно будет быстрее работать?

2-е обработки в 1-ом Таймере, при Timer1.interval:= 500;

или

1-а обработка в 1-ом таймере, при Timer1.interval:= 500;
+
1-а обработка в 1-ом таймере, при Timer1.interval:= 500;

т.е. есть ли смысл  разделять различные обработки(расчёты) в отдельные таймеры или можно всё в одном крутить. Около 500 строк занимают ДВЕ обработки в одном таймере. при расчётах используются  простые арифметические действия, и    if ..then..begin..end


Officeman   (2006-02-07 14:27:00) [21]

Kolan =) это я так обозвал массив переменных. я дурак.


Digitman   (2006-02-07 14:26:00) [22]


> невсегда сокращённый код, работает быстрее полного


"Быстроту" ту самую ты не там ищешь.

Ну а читать эту галиматью нет никакого желания, поверь.


Officeman   (2006-02-07 14:24:00) [23]

to Digitman
Я попробую с помощью  with или for  уменьшить код.  
Но невсегда сокращённый код, работает быстрее полного.


Kolan   (2006-02-07 14:22:00) [24]

виртуальных переменных
А это что такое?


Officeman   (2006-02-07 14:11:00) [25]

пс. просто вы быстро пишите. пока я сам пишу сообщения. вы уже новые добавляете. получается второе сообщение перед первым.


Officeman   (2006-02-07 14:09:00) [26]

to Zeqfreed

короче =) скачайте и посмотрите. размер 1,8 метра.

http://stalkerz.onfo/primer/v0602.rar

Надо собрать чуваку комплект доспех.

Кратно описание:
1)сначало выбираете любое зелёное поле двойным щелчком мыши,
затем в списке выбираете нужный предмет.
Одевается тоже дв.щелчком мыши.


evvcom   (2006-02-07 14:09:00) [27]


> Officeman   (07.02.06 13:54) [21]
> to evvcom, wrote:
> И про таймер: чем обусловлена необходимость запускать "сложный"
> расчет каждые полсекунды? Может здесь подойдет что-то менее
> ресурсоемкое?
>
> Например?

Ты как тот еврей, отвечаешь вопросом на вопрос, игнорируя первую половину. Тебе также коротко ответить? Сообщения.


Officeman   (2006-02-07 14:02:00) [28]

to Kolan, концепция абсолютно верная. уверен на 100%.
Согласен. Реализация дерьмовая.  Я никогда не работал с таким больши колличеством реквизитом.

А данные я только храню в ListView.  т.е. при загрузке программы открываю текстовый файлик с разделителями. и гружу всё в ListView. потом работаю с данными из ListView (читаю, перезаписываю) и при выходе их программы снова всё сохраняю в текстовый файл в разделителями.

всё работает в принципе.  конечно я согласен что я загнался с "strtofloat".
думал что код будет намного меньше. скорее всего сделаю так. буду держать все данные ячеек в виртуальных переменных. и уже в ними работать в таймере.


Zeqfreed   (2006-02-07 13:57:00) [29]


> подскажи как можно подругому записать следующую строку:
> ))

Для начала — использовать with. А вообще, такой код подлежит безжалостному уничтожению.


Digitman   (2006-02-07 13:55:00) [30]

Вся эта абракадабра

calc_sila.Caption:=
inttostr(strtoint(u_sila.text)+
strtoint(LVu.items.Item[0].SubItems[6])+
strtoint(LVu.items.Item[1].Sub Items[6])+
strtoint(LVu.items.Item[2].SubItems[6])+
strtoint(LVu.items.Item[4].SubItems[6])+
strtoint(LVu.items.Item[5].Sub Items[6])+
strtoint(LVu.items.Item[6].SubItems[6])+
strtoint(LVu.items.Item[7].SubItems[6])+
strtoint(LVu.items.Item[8].Sub Items[6])+
strtoint(LVu.items.Item[9].SubItems[6])+
strtoint(LVu.items.Item[10].SubItems[6])+
strtoint(LVu.items.Item[3].Su bItems[6])+
strtoint(LVu.items.Item[11].SubItems[6])+
strtoint(LVu.items.Item[0].SubItems[31])+
strtoint(LVu.items.Item[1].SubItems[31])+
strtoint(LVu.items.Item[2].SubItems[31])+
strtoint(LVu.items.Item[3].SubItems[31])+
strtoint(LVu.items.Item[4].SubItems[31])+
strtoint(LVu.items.Item[5].SubItems[31])+
strtoint(LVu.items.Item[6].SubItems [31])+
strtoint(LVu.items.Item[7].SubItems[31])+
strtoint(LVu.items.Item[8].SubItems[31])+
strtoint(LVu.items.Item[9].SubIt ems[31])+
strtoint(LVu.items.Item[10].SubItems[31])+
strtoint(LVu.items.Item[11]. SubItems[31]));

сводится к примитивнейшему, до смешного протому коду :

var
 Accum := 0; //Accum: Integer;
..
with LVu.items do
for I:=0 to 11 do
 Accum := Accum + strtoint(Item[i].SubItems[6]) + strtoint(Item[i].SubItems[31]);
calc_sila.Caption:= IntToStr(StrToInt(u_sila.text) + Accum);


Officeman   (2006-02-07 13:54:00) [31]

to evvcom, wrote:
И про таймер: чем обусловлена необходимость запускать "сложный" расчет каждые полсекунды? Может здесь подойдет что-то менее ресурсоемкое?

Например?


evvcom   (2006-02-07 13:45:00) [32]


> подскажи как можно подругому записать следующую строку:
> ))


> u2_sila.text

Есть, например, TSpinEdit. Зачем использовать TEdit и преобразовывать текст к числу, если можно выбрать другой компонент и работать непосредственно с числом?

> strtoint(LVu2.items.Item[0].SubItems[6])+

Что такое LVu2? Вероятно, тебе для данной задачи это не очень-то и подходит. Возможно, надо написать нечто свое, которое хранит числа, а не строки.
И про таймер: чем обусловлена необходимость запускать "сложный" расчет каждые полсекунды? Может здесь подойдет что-то менее ресурсоемкое?


Kolan   (2006-02-07 13:40:00) [33]

Опеши задачу. У тебя неверный подход к её решению...


Kolan   (2006-02-07 13:38:00) [34]

сами таблички скрыты от глаз пользователя
Те ты хочешь сказать, что ты берешь данные из ListView, делаешь кучу преобразований, и эти ListViewдаже пользователю НЕВИДНЫ ?

Извени - бред...


Officeman   (2006-02-07 13:37:00) [35]

evvcom, помоги!
подскажи как можно подругому записать следующую строку: ))

calc2_sila.Caption:=inttostr(strtoint(u2_sila.text)+strtoint(LVu2.items.Item[0].SubItems[6])+strtoint(LVu2.items.Item[1] .SubItems[6])+strtoint(LVu2.items.Item[2].SubItems[6])+strtoint(LVu2.items.Item[4].SubItems[6])+strtoint(LVu2.items.Item [5].SubItems[6])+strtoint(LVu2.items.Item[6].SubItems[6])+strtoint(LVu2.items.Item[7].SubItems[6])+strtoint(LVu2.items.I tem[8].SubItems[6])+strtoint(LVu2.items.Item[9].SubItems[6])+strtoint(LVu2.items.Item[10].SubItems[6])+strtoint(LVu2.ite ms.Item[3].SubItems[6])+strtoint(LVu2.items.Item[11].SubItems[6])+
strtoint(LVu2.items.Item[0].SubItems[31])+strtoint(LVu2.items.Item[1].SubItems[31])+strtoint(LVu2.items.Item[2].SubItems [31])+strtoint(LVu2.items.Item[4].SubItems[31])+strtoint(LVu2.items.Item[5].SubItems[31])+strtoint(LVu2.items.Item[6].Su bItems[31])+strtoint(LVu2.items.Item[7].SubItems[31])+strtoint(LVu2.items.Item[8].SubItems[31])+strtoint(LVu2.items.Item [9].SubItems[31])+strtoint(LVu2.items.Item[10].SubItems[31])+strtoint(LVu2.items.Item[3].SubItems[31])+strtoint(LVu2.ite ms.Item[11].SubItems[31]));


Officeman   (2006-02-07 13:35:00) [36]

to Kolan, =( нельзя.

Программа как конструктор.
Пользователь визуально подбирает элементы(каждый имеет свои параметры), и сразу видит изменившийся результат.

сами таблички скрыты от глаз пользователя.


evvcom   (2006-02-07 13:32:00) [37]

Зачем же столько StrToInt и IntToStr? :o) Бедная машина!.. :) А еще циклы есть и массивы констант, например.


Kolan   (2006-02-07 13:31:00) [38]

ЗЫ
Код ужасный ничего не понятно
calc_lovka.Caption:=inttostr(strtoint(u_lovka.text)+strtoint(LVu.items.Item[0].SubItems[7])+strtoint(LVu.items.Ite m[1].S ubItems[7])+strtoint(LVu.items.Item[2].SubItems[7])+strtoint(LVu.items.Item[4].SubItems[7])+strtoint(LVu.items.Item[5].S  ubItems[7])+strtoint(LVu.items.Item[6].SubItems[7])+strtoint(LVu.items.Item[7].SubItems[7])+strtoint(LVu.items.Item[8].S  ubItems[7])+strtoint(LVu.items.Item[9].SubItems[7])+strtoint(LVu.items.Item[10].SubItems[7])+strtoint(LVu.items.Item[3].  SubItems[7])+strtoint(LVu.items.Item[11].SubItems[7])+
На генератор сл символов похоже


Kolan   (2006-02-07 13:29:00) [39]

x0:=strtofloatDef(LVu.Items.Item[0].SubItems[5],0);

А что кто-то может успеть поменять
LVu.Items.Item[0].SubItems[5],0за пол секунды думаю нет.

Так зачем тогда ты это там храшишь. Раздели Хранение и отображение данных.
Тогда не придется делать кучу преобразований..

Мож конечно не так понял..


Digitman   (2006-02-07 13:29:00) [40]


> класса  Pentium I . возникают проблемы.
> обишка к памяти и прочае


Да наплоди ты там хоть косой десяток таймеров - результат будет тем же !


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

Наверх

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