Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

Насколько быстро работает FindComponent   Найти похожие ветки 

 
Гость_   (2007-01-21 23:08) [0]

Если на форме порядка 770 объектов, то на сколько быстрее будет присвоение надписи напрямую конкретному объекту чем через FindComponent??? (ну вдруг там разница-то и не большая :) )


 
Sergey Masloff   (2007-01-21 23:11) [1]

Ну, в среднем в 385 раз медленнее  ;-)


 
Johnmen ©   (2007-01-21 23:15) [2]

Если на форме порядка 770 объектов, то что-то не то в консерватории.


 
Sergey Masloff   (2007-01-21 23:15) [3]

Но в любом случае затраты времени небольшие. Доли секунды будет искать среди тысяч.


 
Джо ©   (2007-01-21 23:17) [4]

> Насколько быстро работает FindComponent

Проверить — не судьба?


 
Гость_   (2007-01-21 23:33) [5]

TLabel(FindComponent("X_"+IntToStr(i)+"_Yl")).Caption := str;
это я так понимаю он не то что по форме, а по всему проекту ищет?
>Но в любом случае затраты времени небольшие. Доли секунды будет искать среди тысяч.
у мну это вызывается много раз, поэту действие работает от 2 до 8 секунд
>Проверить — не судьба?
буду благодарен если подкинешь ссылку на описание замерения времени выполнения кода


 
Palladin ©   (2007-01-21 23:45) [6]

var
tc:cardinal;
begin
tc:=gettickcount;
выполнение кода
showmessage(inttostr(gettickcount-tc)+"ms");
end


 
Palladin ©   (2007-01-21 23:46) [7]


> это я так понимаю он не то что по форме, а по всему проекту
> ищет?

очень плохо понимаешь, для хорошего понимания лучше прочитать справку


 
Гость_   (2007-01-21 23:54) [8]

Description

FindComponent returns the component in the Components property array with the name that matches the string in the AName parameter. Use FindComponent to determine whether a given component is owned by another.

Component name matches are not case sensitive.

Может просветите как из этого следует связка FindComponent с формой или проектом?


 
Anatoly Podgoretsky ©   (2007-01-21 23:55) [9]

> Гость_  (21.01.2007 23:33:05)  [5]

2-8  секунд можно даже измерить по часам.


 
Anatoly Podgoretsky ©   (2007-01-21 23:56) [10]

> Гость_  (21.01.2007 23:54:08)  [8]

Никак не следует, более того вообще связи нет.


 
Runner   (2007-01-22 00:09) [11]

Может просветите как из этого следует связка FindComponent с формой или проектом?

FindComponent - метод класса TComponent, от которого порожден класс TForm. Компоненты в design-time ты куда бросаешь, на форму?


 
Runner   (2007-01-22 00:11) [12]

от которого порожден

В смысле, TForm - потомок в N-ном поколении (точнее - в 5-м).


 
Palladin ©   (2007-01-22 00:12) [13]


> [8] Гость_

ну AP не договаривает, связка есть, но FindComponent ведет поиск среди своих дочерних компонентов, все что в design-time положено на form1 будет найден через form1.findcomponent, но все что положено в том же design-time на form2 в form1.findcomponent найдено уже не будет, более того, все что создано в run-time с владельцем form1.panel1 в form1.findcomponent найдено тоже не будет, только в form1.panel1.findcomponent

есть четкая иерархия принадлежности компонентов


 
Palladin ©   (2007-01-22 00:19) [14]


> на сколько быстрее будет присвоение надписи напрямую конкретному
> объекту чем через FindComponent???

на туеву хучу :) учитывая что FindComponent - это простой цикл, да еще и с вызовом SameText, да еще придется строить рекурсию...


 
Гость_   (2007-01-22 00:22) [15]


> FindComponent ведет поиск среди своих дочерних компонентов,
>  все что в design-time положено на form1 будет найден через
> form1.findcomponent


А как быть чтобы искать по всему проекту ???


 
Palladin ©   (2007-01-22 00:25) [16]

рекурсия начиная с Application


 
Palladin ©   (2007-01-22 00:28) [17]

но ты должен понимать button1 может быть и на form1 и на form2 и а form34324 и на form2234.panel4442


 
Гость_   (2007-01-22 00:33) [18]


> button1 может быть и на form1 и на form2 и а form34324 и
> на form2234.panel4442


он поменяет в этом случае у всех найденных объектов например надпись или только у первого найденного???(то есть после чего он выходит)


 
Palladin ©   (2007-01-22 00:38) [19]


> [18] Гость_

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

ps и знака вопроса достаточно одного...


 
Palladin ©   (2007-01-22 00:39) [20]


> то есть после чего он выходит

ах емае... ты все таки не понимаешь что такое findcomponent...


 
sinys ©   (2007-01-22 06:32) [21]


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

И какже я это делаю?:)
Пжста пример для поиска всех и только первого :)


 
Runner   (2007-01-22 10:23) [22]

И какже я это делаю?:)

Напишешь программу. С понятием рекурсии знаком? Если да - садись, пиши. Если нет - садись, читай.

P.S. Ну, или программиста наймешь, если самому написать не дано.

Пжста пример для поиска всех и только первого

Поиск "только первого" - совершенно такой же, как и "поиск всех", только, после того, как найдется первый компонент, процесс поиска прерывается.
Андэрстэнд?


 
MsGuns ©   (2007-01-22 11:03) [23]

Блин, ну зачем чтобы определить имя симпатичной соседки надо делать перепись населения всей страны ?

Переключать группой свойства ВИЗУАЛЬНЫХ контролов надо во-первых, не по компонентам, а по контролам (коих может быть в разы меньше), а во-вторых, внутри контейнеров (панели, групбоксы и т.д.). Это и удобнее, и правильнее, и нагляднее.



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.03 c
2-1169823584
loword2
2007-01-26 17:59
2007.02.11
Запись в textfile


15-1169504142
IMHO
2007-01-23 01:15
2007.02.11
Зарегистрированный товарный знак


1-1166135792
conless
2006-12-15 01:36
2007.02.11
ScrollBox, помогите разобраться!


2-1169807810
Juice
2007-01-26 13:36
2007.02.11
Вещественные числа и округление


2-1169630947
распечатчик
2007-01-24 12:29
2007.02.11
Работа с принтером