![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите!
Le! © (2003-02-10 08:11:00)Недавно наткнулся на такой пример:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
const
NamePrefix = "MyEdit";
begin
for i := 1 to 20 do begin
TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
begin
Left := 10;
Top := i * 20;
Parent := self;
end;
end;
end;
Он порождает 20 Edit"оф. Вопрос: почему таким способом нельзя сделать несколько панелей, да и других компонентов?
anbezr (2003-02-10 09:45:00) [1]Ссылку изучил. надо искать именно в runtime
MBo (2003-02-10 09:39:00) [2]FindComponent разумно использовать потом, в процессе работы, а при создании объекта - ни к чему.
З.Ы. Ссылку изучил?
anbezr (2003-02-10 09:32:00) [3]Да нет - речь идет о периодическом просмотре всех компоентов с целью выделения из них, например, TLabel и модифицирования некоторых его полей. понятно, что в данном случае необходим массив-список компонент, удовлетворяющих к-л условию. Идеальным кажется array of TComponent, но возникила и задача определния адреса объекта по имени. ничего другово, окромя FindConponent я не нашел.
Anatoly Podgoretsky (2003-02-10 09:31:00) [4]anbezr (10.02.03 09:19)
Изучаем with или в крайнем случае создаем временную переменную.
MBo (2003-02-10 09:25:00) [5]>anbezr
Если ты его только что создал, то известна ссылка на него, зачем же копаться во всех компонентах?
anbezr (2003-02-10 09:19:00) [6]> 2) Пример плохой - нелепо FindComponent делать
а что же тогда использовать - как еще обратиться к компоненту по имени, хранящемуся в string
MBo (2003-02-10 08:13:00) [7]1) Можно хоть панелей, хоть чего.
2) Пример плохой - нелепо FindComponent делать
3) http://delphi.vitpc.com/helloworld/runtime_comp.htm