powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / компоненты на форме
15 сообщений из 15, страница 1 из 1
компоненты на форме
    #32126138
Bаlbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. как узнать, сколько чартов на форме?
2. как узнать, есть ли определенный компонент на форме?
ЗЫ без перебора компонентов
...
Рейтинг: 0 / 0
компоненты на форме
    #32126142
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если Help глянуть? я в течении 5 секунд нашел функцию FindComponent...
...
Рейтинг: 0 / 0
компоненты на форме
    #32126145
Bаlbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да знаю я про него
мне не надо с компонентом ничего делать, только проверить есть или нет
и первый вопрос: типа (tcomponent as tchart).count
такого нет, а жаль
...
Рейтинг: 0 / 0
компоненты на форме
    #32126146
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если результат сравнить с nil? не задумывался об этом
...
Рейтинг: 0 / 0
компоненты на форме
    #32126147
Bаlbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с Nilом получилось, спасибо
а первый вопрос остался
...
Рейтинг: 0 / 0
компоненты на форме
    #32126148
Bаlbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с Nilом получилось, спасибо
а первый вопрос остался
...
Рейтинг: 0 / 0
компоненты на форме
    #32126157
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай хелп а? да и если что возможно придется рекурсивно искать компоненты на форме....
...
Рейтинг: 0 / 0
компоненты на форме
    #32126180
Bаlbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а почему рекурсивно?
...
Рейтинг: 0 / 0
компоненты на форме
    #32126185
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что свойством components ты можешь получить только те компоненты, которыепринадлежат соответствующему контролу, который сам может принадлежать другому контролу... Чуешь чем пахнет? в общем случае это дерево. Класический разбор дерева?... напрягаем память и вспоминаем что там говорили умные дяденьки и тетеньки на лекциях,которые были прогуляны по причине очередной попойки в общаге... вспомнили, что дерево разбирается рекурсией....
...
Рейтинг: 0 / 0
компоненты на форме
    #32126190
Bаlbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ух ты.. неужто вместе учились? :)
за помощь спасибо!
а в хелпе че-то не нашел, как проще найти число опред. комп.
...
Рейтинг: 0 / 0
компоненты на форме
    #32126715
Фотография MalkoLinge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>потому что свойством components ты можешь получить только те >компоненты, которыепринадлежат соответствующему контролу, который сам >может принадлежать другому контролу... Чуешь чем пахнет? в общем случае >это дерево. Класический разбор дерева?... напрягаем память и вспоминаем >что там говорили умные дяденьки и тетеньки на лекциях,которые были >прогуляны по причине очередной попойки в общаге... вспомнили, что дерево >разбирается рекурсией....

Отвечу немного резко, заранее прощу прощения :)

Итак Components - список компонентами, Кторыми ВЛАДЕЕТ компонент, все контрлы, который в дизайн тайме положили на форму - принадлежать ей. Вся эта выше-гороженная чушь относиться массиву controls, который действительно содержит в себе список контрлов, для которых данный - РОДИТЕЛЬ.

Если ваши компоненты создаються в рантайме - то Вы назначаете владельца
в конструторе Vbutton:=TButton.Create(Self{Ссылка НА ВЛАДЕЛЬЦА!!!})

Итак ваша проблема решаеться без всяких рекурсивных деревьев
(при условии что вы создаете Ваши контролы в ран-тайме и в конструктор передаете Self(к контексте формы - это сама форма) либо ложите их на форму, панель на форме, на панель на панени панелей рядом с другой панелью, только сбоку в дезайн или ран тайме) всего одним циклом, что-то вроде этого :

for i:=0 to Form1.componentsCount-1 do begin
if form1.components is TВашКласс then .....
end;

Всего хорошего , С уважением
Евгений
...
Рейтинг: 0 / 0
компоненты на форме
    #32126956
Bаlbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да я все так и сделал, а хотел покороче
...
Рейтинг: 0 / 0
компоненты на форме
    #32126964
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MalkoLinge
Неа, и что нового ты сказал? мое выражение было "возможно придется рекурсивно искать компоненты на форме" где ключевое слово возможно
так же можно не морочится и даже в дизайнере все накидывать ТОЛЬКО на форму и никакой рекурсии... то что предложил я это работа в общем случае... а то что есть у тя, так это обработка только одной ветки, тоесть только часть... Так к чему было это писать? можно извратится и не на такое, а учить меня перепечаткой с книг, причем для начинающих.... ну не нужно....
...
Рейтинг: 0 / 0
компоненты на форме
    #32127127
Фотография MalkoLinge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот опять Вы меня не поняли :)
Есть разница между Components и Controls. В первом случаее мы смотрим все Компоненты а во втором - контролы. Разберитьсь пожайлуста чем Родитель отличаеться от ВЛАДЕЛЬЦА
...
Рейтинг: 0 / 0
компоненты на форме
    #32127791
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел бы я посмотреть, как можно менять владельцев независимо от родителей на форме
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / компоненты на форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]