![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Насколько быстро работает FindComponent
Гость_ © (2007-01-21 23:08:00)Если на форме порядка 770 объектов, то на сколько быстрее будет присвоение надписи напрямую конкретному объекту чем через FindComponent??? (ну вдруг там разница-то и не большая :) )
MsGuns (2007-01-22 11:03:00) [1]Блин, ну зачем чтобы определить имя симпатичной соседки надо делать перепись населения всей страны ?
Переключать группой свойства ВИЗУАЛЬНЫХ контролов надо во-первых, не по компонентам, а по контролам (коих может быть в разы меньше), а во-вторых, внутри контейнеров (панели, групбоксы и т.д.). Это и удобнее, и правильнее, и нагляднее.
Runner (2007-01-22 10:23:00) [2]И какже я это делаю?:)
Напишешь программу. С понятием рекурсии знаком? Если да - садись, пиши. Если нет - садись, читай.
P.S. Ну, или программиста наймешь, если самому написать не дано.
Пжста пример для поиска всех и только первого
Поиск "только первого" - совершенно такой же, как и "поиск всех", только, после того, как найдется первый компонент, процесс поиска прерывается.
Андэрстэнд?
sinys (2007-01-22 06:32:00) [3]
> как тебе нужно, так и сделает... ты же управляешь процессом
> поиска... и анализом найденного
И какже я это делаю?:)
Пжста пример для поиска всех и только первого :)
Palladin (2007-01-22 00:39:00) [4]
> то есть после чего он выходит
ах емае... ты все таки не понимаешь что такое findcomponent...
Palladin (2007-01-22 00:38:00) [5]
> [18] Гость_
как тебе нужно, так и сделает... ты же управляешь процессом поиска... и анализом найденного
ps и знака вопроса достаточно одного...
Гость_ (2007-01-22 00:33:00) [6]
> button1 может быть и на form1 и на form2 и а form34324 и
> на form2234.panel4442
он поменяет в этом случае у всех найденных объектов например надпись или только у первого найденного???(то есть после чего он выходит)
Palladin (2007-01-22 00:28:00) [7]но ты должен понимать button1 может быть и на form1 и на form2 и а form34324 и на form2234.panel4442
Palladin (2007-01-22 00:25:00) [8]рекурсия начиная с Application
Гость_ (2007-01-22 00:22:00) [9]
> FindComponent ведет поиск среди своих дочерних компонентов,
> все что в design-time положено на form1 будет найден через
> form1.findcomponent
А как быть чтобы искать по всему проекту ???
Palladin (2007-01-22 00:19:00) [10]
> на сколько быстрее будет присвоение надписи напрямую конкретному
> объекту чем через FindComponent???
на туеву хучу :) учитывая что FindComponent - это простой цикл, да еще и с вызовом SameText, да еще придется строить рекурсию...
Palladin (2007-01-22 00:12:00) [11]
> [8] Гость_
ну AP не договаривает, связка есть, но FindComponent ведет поиск среди своих дочерних компонентов, все что в design-time положено на form1 будет найден через form1.findcomponent, но все что положено в том же design-time на form2 в form1.findcomponent найдено уже не будет, более того, все что создано в run-time с владельцем form1.panel1 в form1.findcomponent найдено тоже не будет, только в form1.panel1.findcomponent
есть четкая иерархия принадлежности компонентов
Runner (2007-01-22 00:11:00) [12]от которого порожден
В смысле, TForm - потомок в N-ном поколении (точнее - в 5-м).
Runner (2007-01-22 00:09:00) [13]Может просветите как из этого следует связка FindComponent с формой или проектом?
FindComponent - метод класса TComponent, от которого порожден класс TForm. Компоненты в design-time ты куда бросаешь, на форму?
Anatoly Podgoretsky (2007-01-21 23:56:00) [14]> Гость_ (21.01.2007 23:54:08) [8]
Никак не следует, более того вообще связи нет.
Anatoly Podgoretsky (2007-01-21 23:55:00) [15]> Гость_ (21.01.2007 23:33:05) [5]
2-8 секунд можно даже измерить по часам.
Гость_ (2007-01-21 23:54:00) [16]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 с формой или проектом?
Palladin (2007-01-21 23:46:00) [17]
> это я так понимаю он не то что по форме, а по всему проекту
> ищет?
очень плохо понимаешь, для хорошего понимания лучше прочитать справку
Palladin (2007-01-21 23:45:00) [18]var
tc:cardinal;
begin
tc:=gettickcount;
выполнение кода
showmessage(inttostr(gettickcount-tc)+'ms');
end
Гость_ (2007-01-21 23:33:00) [19]TLabel(FindComponent('X_'+IntToStr(i)+'_Yl')).Caption := str;
это я так понимаю он не то что по форме, а по всему проекту ищет?
>Но в любом случае затраты времени небольшие. Доли секунды будет искать среди тысяч.
у мну это вызывается много раз, поэту действие работает от 2 до 8 секунд
>Проверить — не судьба?
буду благодарен если подкинешь ссылку на описание замерения времени выполнения кода
Джо (2007-01-21 23:17:00) [20]> Насколько быстро работает FindComponent
Проверить — не судьба?