Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
Чтение свойств объектов Найти похожие ветки
← →
Кодер (2003-08-30 14:20) [0]Доброго времени суток. Помогите, пожалуйста, в решении проблемы, суть ее такова: существует форма, с содержанием большого количества объектов TEdit и TComboBox (в сумме их более 300). Существует некая переменная (типа String), в которой содержится название-имя одного из этих 300 объектов. К примеру существует VIEW:TEdit и S:STRING = "VIEW". Как найти объект VIEW:TEdit для того, чтобы считать его свойства (к примеру поле Text), зная всего лишь название этого объекта, хранящееся в переменной типа String? Перебор всех имен объектов формы здесь неуместен, так как в конечном счете необходимо "добраться" до свойств всех 300 объектов, что в данном случае чревато большими временнЫми затратами. Пожалуйста, подскажите решение.
← →
Vuk (2003-08-30 15:59) [1]Ну во-первых есть у TComponent метод FindComponent, который ищет компонент по имени, а во-воторых 300 объектов - это не много и цикл отработает быстро. В конце концов FindComponent как раз перебором и занимается.
var
Found: TComponent;
...
Found := FindComponent("VIEW");
if Found is TEdit then
with TEdit(Found) do
begin
....
end;
← →
Кодер (2003-08-30 21:13) [2]> Vuk © (30.08.03 15:59)
Спасибо!
Это единственный способ решения проблемы?
← →
vuk (2003-08-30 21:51) [3]Ну... Если знаете способ пройти по списку без цикла, то не единственный... :o)
Кстати, мой код не совсем корректен. лучше было бы:
if (Found <> nil) and (Found is TEdit) then
...
← →
Ученик (2003-08-31 13:01) [4]>vuk © (30.08.03 21:51) [3]
В IsClass есть проверка на nil, так что все нормально :-)
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.011 c