![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обратиться к объекту по имени хранящемся в строке [D7, XP]
Viod © (2008-08-06 08:38:00)Здравствуйте.
Такой вопросик: есть ли в Делфи конструкция позволяющая обратиться к объекту с помощью его имени хранящегося в строковой переменной?
Что-то вродеObjectById(ObjectId:string):TObject
Сергей М. (2008-08-06 10:37:00) [1]
> у динамических массивов появились вдруг владельцы?
>
А, ты вон о чем ..
Я и не посмотрел на объявление этого идентификатора)
Anatoly Podgoretsky (2008-08-06 10:25:00) [2]
> Я их не делаю, и так жарко на дворе, это автора приспичило)
Это он зря, не понимает, что творит.
Anatoly Podgoretsky (2008-08-06 10:24:00) [3]
> С какого вдруг перепугу ?)
А с каких пор у динамических массивов появились вдруг владельцы?
Vlad Oshin (2008-08-06 10:01:00) [4]function FindGlobalComponent(const Name: string): TComponent;
Сергей М. (2008-08-06 09:35:00) [5]
> Anatoly Podgoretsky © (06.08.08 09:23) [5]
> У panel нет владельца
С какого вдруг перепугу ?)
Компонент он и в Африке компонент и Owner'а у него пока еще никто не отменял.
> Только лишнии телодвижения
Я их не делаю, и так жарко на дворе, это автора приспичило)
Anatoly Podgoretsky (2008-08-06 09:23:00) [6]Сергей М. © (06.08.08 08:57) [3]
У panel нет владельца, а найти владельца в массиве требуется его сканирование, правда и смысл в этом случае исчезает, какая разница что искать, имя или это имя через свойство Panel[i].Owner -> FindComponent. Только лишнии телодвижения.
Viod (2008-08-06 09:02:00) [7]Спасибо.
Сергей М. (2008-08-06 08:57:00) [8]Name - это не имя объекта, а опубликованное свойство компонента.
см. Компонент-владелец.FindComponent('Имя искомого компонента, которым владеет компонент-владелец')
Viod (2008-08-06 08:52:00) [9]
var panel:array of TPanel;
p_name:string;
begin
SetLength(panel,length(panel)+1);
panel[0]:=TPanel.Create(form1);
panel[0].Name:='mypanel';
panel[0].Parent:=Form1;
p_name:=panel[0].name;
Допустим мне нужно изменить цвет панели:
panel[0].color:=clWhite;
А как мне это сделать используяp_name:string, а неpanel[0]
Сергей М. (2008-08-06 08:42:00) [10]Объект не имеет имени.